導語:異或運算子的符號為^,當對兩個整數進行異或操作計算時,是對其相應的`二進位制數進行的異或運算。下面讓我們瞭解一下Java的異或運算子。
其規則為:對於每一二進位制位,0^0 =0, 0^1=1, 1^0=1, !^1=0。
可簡單理解成:相同位為0,不同為為1(或兩個數字相加,但不考慮進位)。
因此,又常稱為按位異或。
異或運算具有如下幾個特徵:
1.0^任何數 = 任何數;
2.任何數 ^ 任何數 = 0;
3.具有交換律:a^b = b^a;
4.具有結合律:a^b^c = a^(b^c)。
因此,有時會見到異或運算出現在如下兩個場景中:
1.不經過第三方變數直接交換兩個整數的值。
1 public class ExchangeNumber {
2
3 public static void main(String[] args) {
4
5 int a = 12;
6 int b = 7;
7 tln("原數 a=" + a + " b=" + b);
8 a = a ^ b;
9 b = a ^ b;
10 a = a ^ b;
11 tln("交換後的值為 a=" + a + " b=" + b);
12 }
13
14 }
2. 在網路傳輸過程中,通過異或對數字進行簡單加密,接收後相應解密。
如:需要加密的數字為a,祕鑰為b,則加密後的結果c=a^b;
接收後,對c進行解密。c^b = a^b^b = a^(b^b) = a^0 = a。