异或的运用-交换

异或(^):不同为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

这样就完成了交换。

全部评论

相关推荐

mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
06-07 21:26
江南大学 C++
话不多说,直接上时间线和图片1.2024年10月底发offer,并签三方2.2025年5月底公司违约
从零开始的转码生活:希望所有签了三方但直接违约的公司都倒闭!都倒闭!都倒闭!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务