Как вывести десятичное число в 32 двоичных числа, разделяя его на 8 бит - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь напечатать 32 двоичное целое число с 8 битами, разделенными пробелом.ex (00000000 00000000) Затем результат следует использовать для будущего тестирования, которое я буду интегрировать, например, 512 как y.

  #define CHAR_BITS 8

void displayBits(unsigned int n){


int sup = CHAR_BITS*sizeof(int);
while(sup >= 0)
{
    if(n & (((long int)1) << sup) )
        printf("1");
    else
        printf("0");
    sup--;


}
printf("\n");

return;
}

1 Ответ

0 голосов
/ 08 февраля 2019

Если у вас уже есть рабочий цикл, который выводит по одному символу на каждой итерации цикла, а i - это индекс цикла, начинающийся с 0, то следующее условие добавит пробел каждые 8 ​​символов:

if(i && ((i + 1) % 8 == 0))
{
    putchar(' ');
}

Тем не менее, ваш текущий код на самом деле не работает правильно для создания двоичного представления int.Проверьте это со значением 1 для n и проверьте его вывод.Я вижу 100000000000000000000000000000001.

...