交换两个变量的值,最有常用的方法就是使用临时变量了
例:
int temp=a;
a=b;
b=temp;
这种是最常见的:
但还有另一种方法:
就是异或运算:
a=a^b;
b=a^b;
a=a^b;
这才是我要讲的:
我是用代入法的思想来理解它:
b=a^b用代入法则是 b=a^b^b
根据异或规则,一个数据被同一个数据异或两次则返回原值
因此这里返回的是a,等价于b=a;
第二个 a=a^b;用代入法后的原始公式是 a=(a^b)^(a^b^b)
计算后的公式 a=a^b^a
因此这里返回的是b
到此交换就完成了,OK
|
|