1,首先需要明確的是異或運算滿足交換律和結合律,即有如下公式
a^b=b^a;
b^a^b=a^b^b;
2,其次,異或運算還滿足下面的公式
a^a=0;
a^0=a;
3,使用異或運算實現兩個變量交換變量值的代碼如下
a=a^b; b=a^b; a=a^b;
4,對第三步的代碼進行分析如下
a=a^b; b=a^b=a^b^b=a^(b^b)=a^0=a; a=a^b=a^b^a=b^(a^a)=b^0=b;
從而實現了使用異或運算將兩個變量值互換。
5,在日常編程情況下,不建議使用這種方法,首先是速度不一定能夠得到提高。
6,對這種方法的另一種理解:
1 a^b=diff;//diff為a,b兩個變量的差值 2 a^diff=b;//a減去差值為b 3 b^diff=a;//b減去差值為a