如何打印小数成32个二进制分离它的8位

问题描述 投票:1回答:1

我想打印带有由空格分隔的8位32二进制整数。 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;
}
c binary printf bit unsigned
1个回答
1
投票

如果你已经有一个工作循环,在每次循环打印出一个字符,并且i是循环索引,以0开始,那么以下条件将添加一个空格,每8个字符:

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

然而,当前的代码实际上并没有正常工作,要么产生int的二进制表示。与n值1测试,并检查它的输出。我看到100000000000000000000000000000001

© www.soinside.com 2019 - 2024. All rights reserved.