比如:设两个变量a=8;b=15;在不创建新实例的情况下使a、b的值互换
对于这到题目如果在创建新实例下交换两个变量的值那是非常简单的,无非就是定义一个中间变量temp来互换,那么对于在不创建新实例的情况下实现互换的话,也很简单。
(1) a = a + b;
b = a - b;
a = a - b;
(2) a = a * b;
b = a / b;
a = a / b;
(3) a = a ^ b;
b = a ^ b;
a = a ^ b;
前面两种就不细说了,很容易理解的,第三种相对于前面两种不易理解
(A)a = a ^ b
0000 1000
0000 1111
a= 0000 0111 = 7
(B) b = a ^ b
0000 0111
0000 1111
b = 0000 1000 = 8
(C) a = a ^ b
0000 0111
0000 1000
a = 0000 1111 = 15
重点: ^ 符号表示按位异或。所谓按位异或是指对应位置上的二进制数值相同为0,不同为1。