请告诉我如何打印一下,比如printf("%d",bit);
.
如果bit只是一个包含最低有效位所需值的int,那么:
printf("%d", bit & 0x1);
应该这样做.&正在使用只有第一个有效位设置的数字进行二进制AND运算,因此您将删除整数中的所有其余位.
如果你需要概括超过Herms,你可以这样做:
#define IsBitSet(val, bit) ((val) & (1 << (bit))) /* ... your code ... */ printf ("%c", IsBitSet(bit, 0) ? '1' : '0');
printf相当于Herms的答案.
如果你在谈论C中的位域,你可以这样做:
struct foo { int b:1; } myFoo; printf("%c", myFoo.b ? '1' : '0');
相关问题: 你如何设置,清除和切换一个位?是对c和c ++中单比特访问的扩展讨论.