常见的两数交换值的方法:
需要使用一个temp暂存数值
a = 4;
b = 6;
int temp;
temp = a;
a = b;
b = temp;
使用异或可以简化代码:
a ^= b ;
b ^= a;
a ^= b;
a’ = a ^ b; 得到新的 a 记为 a’
b = a’ ^ b = (a ^ b) ^ b = a ^ 0 = a; 将上方的a’代入下面的a’, 两个b异或 = 0; 即此时b变为原来的a;
a’ = a’ ^ b = a’ ^ a = (a ^ b) ^ a = b ^ 0 = b; 同上可得 ,完成交换