常用临时变量来保存中间值,达到交换两个数的目的,我们可以使用异或运算来交换两个数。
实现
a = a^b;
b = a^b;
a = a^b;
原理
-
基本性质
- 任意变量x与自身异或结果为0,即:
x^x = 0
- 任意变量x与0进行异或运算,结果不变,即:
x^0 = x
- 异或运算的结合性:
a^b^c = (a^b)^c = a^(b^c)
- 异或运算的交换性:
a^b = b^a
- 任意变量x与自身异或结果为0,即:
-
推导过程
a = a^b
b = a^b --> b = (a^b)^b = a^(b^b) = a^0 = a
a = a^b --> a = (a^b)^a = (b^a)^a = b^(a^a) = b^0 = b