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