所以我试图使用位移和屏蔽从32 =位二进制整数中提取位,但是我一个接一个地消失。
#include <stdio.h>
int main (){
int number = 87; //0000 000 0000 0000 0000 0000 0101 0111
int i;
int bit;
int g = 0;
for(i = 32; i > 0; i--){
if(g%4==0 && g!=0){
printf(" ");
}
g++;
bit = (number >> i) & 1;
printf("%d", bit);
}
printf("\n");
return 0;
}
答案 0 :(得分:1)
您的代码中缺少逻辑..
使用
for(i **= 31**; i **>=** 0; i--)
而不是
for(i **= 32**; i **>** 0; i--)
评论是否适合您