问题描述
我有两个数字2147483648
和808529920
存储在unsigned int
变量中,但是当我在C中按位进行和运算时,答案应该是为1,但我为0。
808529920的二进制格式如下:
110000001100010011000000000000
2147483648的二进制格式如下:
10000000000000000000000000000000
unsigned int a = 808529920;
unsigned int b = 2147483648;
unsigned int ret = a & b;
解决方法
808529920 == 0b00110000001100010011000000000000
2147483648 == 0b10000000000000000000000000000000
没有共同点,所以您应该得到0而不是1。