異或運算 與演算法中的應用

2021-10-11 15:18:12 字數 867 閱讀 3895

異或運算可以理解為是無進製相加!

int a =3;

int b =10;

a = a ^ b;

b = a ^ b;

a = a ^ b;

注意:使用此方法必須保證要有兩個空間,以下的例子為讓arr[0]變為零

public

static

void

main

(string[

] args)

;// swap(arr, 0, 0); // 結果為,因為交換需要兩個空間,需要乙個臨時的空間來儲存兩個數的異或值

swap

(arr,0,

2);}

public

static

void

swap

(int

arr,

int i,

int j)

public

static

void

printoddtimesnum2

(int

arr)

int rightone = eor &

(~eor +1)

;int eor2 =0;

for(

int i : arr)

} system.out.

println

("第乙個數為: "

+ eor2)

; system.out.

println

("第二個數為: "

+(eor2 ^ eor));

}

基礎演算法 與 或 異或運算

參加運算的兩個資料,按二進位制位進行 與 運算。運算規則 0 0 0 0 1 0 1 0 0 1 1 1 即 兩位同時為 1 結果才為 1 否則為0 例如 3 5 即 0000 0011 0000 0101 0000 0001 因此,3 5的值得1。例如 9 5 即 0000 1001 9的二進位制...

異或 運算的應用

1.異或運算 關於異或,有兩種計算。一是邏輯異或,一是按位異或。所謂邏輯異或就是運算數是true或者false。比如p1 true,p2 true,p1 p2。按位異或則是將變數轉化為二進位制,每一位分別異或。相同為0,不同為1。按位運算如 優先順序位於關係運算子之後,邏輯運算子之前。好像不經常強調...

異或運算的應用

異或是一種基於二進位制的位運算,用符號xor或者 表示,其運算法則是對運算子兩側數的每乙個二進位制位,同值取0,異值取1。它與布林運算的區別在於,當運算子兩側均為1時,布林運算的結果為1,異或運算的結果為0。交換律 a b b a 結合律 a b c a b c a b c d a b c 可以推出...