我试着尝试对一个字节进行位操作。
起初我试图说我有1111 1111
(256)和1000 0000
(128)。
所以我这样做:
printf("%u\n", 256 & 128);
我希望得到128
,但我得到0
。
所以我试过了:
printf("%u\n", ((unsigned char) 256) & ((unsigned char) 128));
但这给了我同样的结果。
这有什么问题?
答案 0 :(得分:1)
1111 1111
是255
所以试试
printf("%u\n", 255 & 128);
^^^
考虑整数常量255
和128
的类型为int
。