读书人

两负数异或的有关问题

发布时间: 2013-03-25 15:43:04 作者: rapoo

两负数异或的问题
int x = -100;
int y = -1;
int z = x^y;

最后z= 99 而不是 101 为什么呢?
最高位符号位异或为0变正数, 最低位0^1应该变1. 也就是增加+1. 现在变成-1了.

请指教. 谢谢. C 异或 负数
[解决办法]
int以2个字节为例:
-100的补码:1001 1100
-1的补码: 1111 1111
异或后: 0110 0011
结果就是十进制99
[解决办法]
LZ还能说出-100存的啥样子?

[解决办法]
数据用补码表示,估计是你的补码搞错了吧!

读书人网 >C++

热点推荐