如何交换2个变量的值?一般来说,想到的方法是再找一个临时变量,通过一种顺序存放的方式来达到交换值的效果。 temp = a ; a = b ; b = temp ; 但这样做的话会多使用一个temp的内存。如果没有溢出的问题,可以尝试加减法。
a = a + b ; b = a - b ; a = a - b ;
换成数学运算来表示,a1 = a + b ; b1 = a1 - b = a + b - b = a ; a = a1 - b1 = a + b - a = b ;
a = a^b ; b = b^a ; a = a^b ;
/*----------------------- 关于异或运算 ---------------------*/
根据真值表我们可以得到:a^a = 0 ; b^0 = b ;
假设t = 0011 ;那么 t^0000 = 0011 ^ 0000 = 0011 ;
t^1111 = 0011 ^ 1111 = 1100 ;