異或運算可以理解為是無進製相加!
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 可以推出...