字节操作不适用于 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 1111255

所以试试

printf("%u\n", 255 & 128);
               ^^^

考虑到整数常量255128的类型是int