XOR 交换算法

逻辑异或:
逻辑算符互斥或闸(exclusive or)是对两个运算元的一种逻辑分析类型,符号为 XOR 或 EOR 或 ⊕。当两两数值相同为否,而数值不同时为真

使用 XOR 按位操作交換具有相同數據類型的不同變量的值,而不使用臨時變量:
X := X XOR Y
Y := X XOR Y
X := X XOR Y

异或有这个特性:
0 ⊕ y === y

假设满足结合律(应该是定理):
(x ⊕ y) ⊕ y === x ⊕ y ⊕ x === (y ⊕ y) ⊕ x

下面证明 XOR swap 算法:
x1 = x ⊕ y
y1 = x1 ⊕ y
x2 = x1 ⊕ y1

=>
x2 = (x ⊕ y) ⊕ ((x ⊕ y) ⊕ y) === y
y1 = (x ⊕ y) ⊕ y === x