异或的运用-交换

异或(^):不同为1,相同为0。或者理解为不进位的二进制加法。

a = a ^ b;---1
b = a ^ b;---2
a = a ^ b;---3

其结果是两者交换了,为什么呢?
由①式可得:新的a(记为new_a) = a ^ b
②式:b = new_a ^ b = a ^ b ^ b = a ^ (b ^ b)=a ^ 0 = a 即new_b = a
③式:a = new_a ^ new_b = a ^ b ^ a = b

这样就完成了交换。

全部评论

相关推荐

11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
牛客895077908号:佬 什么双非硕啊
点赞 评论 收藏
分享
10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
耀孝女:就是你排序挂了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务