解法一:加减法
int a = 1, b = 10; a = a + b; // a = 1 + 10 = 11 b = a - b; // b = 11 - 10 = 1 b = a - b; // a = 11 - 1 = 10
这种解法是比较容易想到的方法,也比较好理解。
解法二:异或法
int a = 1, b = 10; a = a ^ b; // a = 0001 ^ 1010 = 0100 b = a ^ b; // b = 0100 ^ 1010 = 0001 = 1 a = a ^ b; // a = 0100 ^ 0001 = 1010 = 10
异或运算:相同为1,不同为0。在计算机中存储方式是二进制,利用二进制的异或运算能交换两个数的值。