Java的異或運算子

2021-09-23 17:02:17 字數 556 閱讀 5415

^是異或運算子,異或的規則是轉換成二進位制比較,相同為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;

例題:給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?

暴力演算法的時間複雜度為o(n^2)

hash表來做空間複雜度為 o(n^2)

用異或來做:

class solution 

}return a;

}}

異或運算子

表示當兩個數的二進位制表示,進行異或運算時,當前位的二進位制相同為0,不同為1.表示為 特點 0異或任何數,是任何數 1異或任何數,任何數取反 任何乙個數字異或自己都等於0 面試題 乙個整型陣列中除了兩個數字之外,其他的數字都出現了兩次。試找出這兩個只出現一次的數字。劍指offer 例如,陣列 中,...

異或運算 運算子 對異或運算子的認識以及初次運用

1 0 1 相同的二進位制位相異或結果不變.int x 3 int y 4 x x y x 3 4 y x y y 3 4 4 3 x x y x 3 4 3 4 上述運算的結果是 x和y的值互換.而過程中並沒有使用別的運算子.即所說的沒有借助其它變數就實現了兩個變數的交換.異或運算是與 並列的位運...

java中 異或運算子的運用

的位運算子中有乙個叫異或的運算子,用符號 表示,其運算規則是 int i 15,j 2 system.out.println i j i j 執行結果是 i j 13.分析上面程式,i 15轉成二進位制是1111,j 2轉成二進位制是0010,根據異或的運算規則得到的是1101,轉成十進位制就是13...