@Test
public void test2() {
int a=2;
int b=3;
a=a^b;
b=a^b;
a=a^b;
System.out.println("a="+a+",b="+b);
}
^是異或運算符,異或的規則是轉換成二進制比較,相同為0,不同為1.
一個數a與另一個數b異或的結果等于a^b,用結果( a^b)異或a,就會得到b;
上面的結果,我們用代碼來驗證。代碼( a=a^b; b=a^b; a=a^b;)可以轉換成這樣。
int c=a^b ; ------------ 01=10^11 得到結果C( a^b)
b=c^b; ------------ 10=01^11 用結果( a^b)異或a,就會得到b;
a=c^a; -------------11=01^10 用結果( a^b)異或b,就會得到a;
---------------------
作者:keepons
來源:CSDN
原文:https://blog.csdn.net/lkpklpk/article/details/81287115
版權聲明:本文為部落客原創文章,轉載請附上博文連結!