XOR Swap

swap(a, b):
  a ^= b
  b ^= a
  a ^= b

先明确一下,a ^ a = 0,同时对于一切数x ^ 0 = x

可以这样理解,第三行:

b ^= a
b ^= a ^ b
b  = b ^ a ^ b
b  = 0 ^ a
b  = a

第四行:

a ^= b
a = a ^ b
a = (原来的a ^ b) ^ 原来的a
a = b
原文地址:https://www.cnblogs.com/jt2001/p/6127087.html