字节操作不适用于unsigned char

时间:2016-03-04 12:03:22

标签: c bit-manipulation

我试着尝试对一个字节进行位操作。 起初我试图说我有1111 1111(256)和1000 0000(128)。 所以我这样做:

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

我希望得到128,但我得到0

所以我试过了:

printf("%u\n", ((unsigned char) 256) & ((unsigned char) 128));

但这给了我同样的结果。

这有什么问题?

1 个答案:

答案 0 :(得分:1)

1111 1111255

所以试试

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

考虑整数常量255128的类型为int