Java“異或” 運算符

導語:異或運算符的符號爲^,當對兩個整數進行異或操作計算時,是對其相應的`二進制數進行的異或運算。下面讓我們瞭解一下Java的異或運算符。

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。