首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

两负数异或的有关问题

2013-03-25 
两负数异或的问题int x -100int y -1int z x^y 最后z 99 而不是 101 为什么呢?最高位符号位异或

两负数异或的问题
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存的啥样子?

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

热点排行