.
Отговор в тема
Резултати от 1 до 9 от общо 9

Hybrid View

  1. #1
    Повече от фен
    Регистриран на
    May 2010
    Мнения
    425
    Няма смисъл да ползваш битови операции за да намериш двоичния запис. Делиш целочислено числото на 2 и му вземаш остатъка, докато числото не ти стане 0, и вземаш остатъците наобратно.

    int dec_to_bin ( int num ) {
    int a[16];
    int i, pos = 0;

    while ( num ) {
    a[++ pos] = num % 2;
    num /= 2;
    }

    for ( i = pos; i >= 1; -- i ) {
    cout << a[i];
    }

    }
    Последно редактирано от Foreverbg : 11-28-2012 на 18:58

  2. #2
    Мега фен Аватара на MaGuSs
    Регистриран на
    Nov 2009
    Град
    Варна
    Мнения
    3 182
    Цитирай Първоначално написано от Foreverbg Виж мнението
    ...
    Авторa/ката е писала "C", а не "C++"

    Код:
    #include <stdio.h>
    #include <stdlib.h>
    #include <limits.h>
    
    static void
    decimal_to_binary (int number){
        char * digits;
        int n_digits,i,copy;
        copy = number;
        n_digits = 0;
        while (copy) {
            n_digits++;
            copy /= 2;
        }
        digits = malloc (n_digits);
        if (! digits) {
            fprintf (stderr, "No more memory.\n");
            exit (EXIT_FAILURE);
        }
        i = 0;
        copy = number;
        while (copy) {
            digits[i] = copy % 2;
            copy /= 2;
            i++;
        }
        printf ("Decimal %d = binary ", number);
        for (i = n_digits - 1; i >= 0; i--) {
            printf ("%d", digits[i]);
        }
        printf ("\n");
        free (digits);
    }
    int main (int argc, char ** argv)
    {
        int i;
        const int base = 10;
        for (i = 1; i < argc; i++) {
    
            char * arg;
            char * end;
            int number;
            arg = argv[i];
            number = strtol (arg, & end, base);
            if (arg != end) {
                decimal_to_binary (number);
            }
        }
        return 0;
    }
    Последно редактирано от MaGuSs : 11-28-2012 на 19:16
    -Щастието е нещо вътрешно, а не външно, затова то не зависи от онова, което имаме, а от това, което сме.
    -Учи се от вчера, живей за днес, вярвaй в утре!

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си