为什么两个二进制数经过三次按位异或运算就可以不借助第三个数将两个数互相交换?

如题所述

异或运算法则是"同0异1",
举个例子:A=1101,B=0101,
第一次A与B异或结果为C=1000,
第二次A与C异或结果为0101,正好是B,
第三次B与C异或结果为1101,正好是A,
可见A与B借助于C实现了交换,本质上C还是充当了“第三者”的角色。

与常用的“C=A,A=B,B=C”交换方式相比,反而不够简洁,多出了位异或运算的开销。
温馨提示:答案为网友推荐,仅供参考
相似回答