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
posted on 2016-12-02 19:30  yanhh  阅读(339)  评论(0编辑  收藏  举报