异或运算-不进位加法
具备规律-交换律
a^b = b^a
具备规律-结合律
(a^b)^c = a^(b^c)
具备规律
对于任何数x,都有x^x=0,x^0=x
自反性 A XOR B XOR B = A xor 0 = A
实际运用:只用两个变量完成值的互换
fun switch() {
var a = 5
var b = 10
a = a xor b
b = a xor b
a = a xor b
println("a: $a") // 输出 10
println("b: $b") // 输出 5
}
解析
a = a xor b
b = a xor b xor b (结果a)
a = a xor a xor b (结果b)