代码:
(1)a = a ^ b;
b = a ^ b;
a = a ^ b;
讲解:
首先我们知道 a ^ b ^ b == a; a ^ b ^ a == b;
那么我们先将a赋值为a和b异或的值,(1)之后我们有b的值,和ab异或的值
然后我们用新拿到的ab异或的值与b异或,得到原来a的值,
再用ab异或的值与a异或得到原来b的值
总结:
异或是一个数学运算符,用于逻辑运算。异或又被称作半加运算,运算规则为不进位的二进制加法。
所以我们可以用异或来实现数的再度还原
(a与b异或的结果:ab^
将ab^与b再进行半加的时候ab ^各个二进制位上的值会被b的各个二进制位上的值再次改变(反正不进位,负负得正了呗)。
同理,将ab^与a半加又可以得到b。
)
图解:
a:
b:
ab的或:
ab的异或: