如何解决在C上按位和unsigned int得到错误答案?
我有两个数字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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。