Java中異或運算子 及其運用

2021-09-12 04:10:03 字數 1047 閱讀 1564

異或運算(^)是以二進位制資料為基礎進行運算的。也就是說當**中使用到異或運算時,都會先將兩個條件進行轉換,轉換成二進位制資料後,再進行運算。異域中同位如果值相同(都是0或者都是1)則為0,不同(乙個是0,乙個是1)為1。

在這裡我們舉個例子:

int a=3;

int b=8;

int c=a^b; //c的值為a和b的異或,輸出值為11

具體運算過程如下:

1.a的二進位制值是:

0000 0011
2.b的二進位制值是:

0000 1000
3.異或運算後二進位制值是:

0000 1011  //結果是11
異或運算法則:

a ^ b = b ^ a

a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c

d = a ^ b ^ c 可以推出 a = d ^ b ^ c

a ^ b ^ a = b

了解了異或運算後回到那道演算法題目,給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次.找出那個只出現了一次的元素.在不知道使用異或運算時,頭都大了,現在我們可以這樣:

int nums= ;

for(int i = 1;i< nums.length;i++)

system.out.println(nums[0]);

上面的**中nums[0]的值就是此陣列中唯一出現的值,最後的結果我們只要通過異或運算的特點來得知,比如上面的陣列[2,2,3,4,4],異或運算是滿**換規則的,對於2^2^3^4^4這樣的異或運算,我們換一下位置等價得到(2^2)^(4^4)^3,通過兩個相同的數進行異或運算可以得到0,那最終就會是0^0^3,最後會得到3.

java中 異或運算子的運用

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

Java的異或運算子

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

異或運算子

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