您的位置:首页 > 其它

clienttoscreen与screentoclient的区别

2013-08-28 16:49 197 查看
今天看Java写的一个五子棋的游戏源码,发现其中用到了异或来标志棋子的状态,而其中负数异或的结果让我感到有点不解,于是探究了一番。

-1^3=?

byte型的-1在计算机中以补码形式存储,原码为10000001,补码为原码非符号位取反加1,即为11111111。

byte型的3的原码、补码都一样,在计算机中的存储为00000011。

如果用原码与3异或:10000001^00000011=10000010=-2

如果用补码与3异或:11111111^00000011=11111100,为补码形式,减一取反后为10000100=-4

而写个简单的System.out.println(-1^3)得出的结果是-4,所以在计算机中确实是以补码形式运算的。其他的运算也是一样~

这个test虽然很低级,但是很容易被忽略,备忘一下~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: