我正在尝试打印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;
}
答案 0 :(得分:1)
如果您已经有一个工作循环,该循环在每次循环迭代时都输出一个字符,并且i
是循环索引,从0开始,则以下条件将每8个字符添加一个空格:>
if(i && ((i + 1) % 8 == 0))
{
putchar(' ');
}
但是,您当前的代码实际上也无法正常产生int
的二进制表示形式。用n
的值1对其进行测试,并检查其输出。我看到100000000000000000000000000000001
。