正数与负数的异或操作(涉及补码)

首先异或操作是对每一位都进行异或(相同为0,不同为1),但需要先把数转换成补码才行。

1、正数的补码即本身

2、负数的补码为各位取反然后加1(最高为保持为1不变)

以-2的一个字节为例

原码: 1000 0010
反码: 1111 1101
补码: 1111 1110

3、将两数的补码按位进行异或

以 3 ^ (-2)为例

3 的补码:0000 0011
-2的补码:1111 1110

异或:    1111 1101  此为结果的补码,然后要反过来计算原码

由 原码 -> 取反 -> +1 补码  得 补码 -1 -> 取反 -> 原码

补码:    1111 1101
-1 :     1111 1100
原码:    1000 0011
即结果为 -3

 

全部评论

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务