當前位置:才華齋>計算機>java語言>

Java“異或” 運算子

java語言 閱讀(2.44W)

導語:異或運算子的符號為^,當對兩個整數進行異或操作計算時,是對其相應的`二進位制數進行的異或運算。下面讓我們瞭解一下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。