異或

異或

異或,英文為exclusiveOR,或縮寫成xor異或(xor)是一個數學運算符。它套用於邏輯運算。異或的數學符號為“⊕”,計算機符號為“xor”。其運算法則為:a⊕b=(¬a∧b)∨(a∧¬b)a⊕b=(¬a∨b)∧(a∨¬b)真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。不同為1,相同為0。異或也叫半加運算,其運算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。異或略稱為XOR、EOR、EX-OR程式中有三種演運算元:XOR、xor、⊕。使用方法如下z=x⊕yz=xxory

基本信息

定義

異或(xor )是一個數學 運算符。它套用於邏輯 運算。異或符號為“^”。其運算法則為:

a^b=(a' and b) or (a and b')(a'為非a)。

真異或假的結果是 真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。 不同為1,相同為0.

異或也叫半加運算,其運算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。

異或略稱為XOR、EOR、EX-OR

程式中有三種演運算元:XOR、xor、 ^。

使用方法如下

z=x^y;

z=xxory;

運算法則

1. a ⊕ a = 0

2. a ⊕ 0 = a

3. a ⊕ b = b ⊕ a

4. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;

5. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.

6. a ⊕ b ⊕ a = b.

7.若x是二進制數0101,y是二進制數1011

則x⊕y=1110

只有在兩個比較的位不同時其結果是1,否則結果為0

即“兩個輸入相同時為0,不同則為1”!

輸入 運算符 輸入 結果
1 0 1
1 1 0
0 0 0
0 1 1

邏輯

邏輯表達式:F=AB’⊕A’B((AB’⊕A’B)’=AB⊙A’B’,⊙為“同或”運算)

異或邏輯的真值表如圖1所

異或異或

示,其邏輯符號如圖2所示。異或邏輯的關係是:當AB不同時,輸出P=1;當AB相同時,輸出P=0。“⊕”是異或運算符號,異或邏輯也是與或非邏輯的組合,其邏輯表達式為:

P=A⊕B

0⊕0=0,0⊕1=1

異或異或

口訣:相同取0,相異取1

事實上,XOR 在英文裡面的定義為either one (is one), but not both, 也即只有一個為真(1)時,取真(1)。

作用

在計算機中普遍運用,異或(xor)的邏輯符號一般用xor,也有用⊕的:

真⊕假=真

假⊕真=真

假⊕假=假

真⊕真=假

或者為:

True ⊕ False = True

False ⊕ True = True

False ⊕ False = False

True ⊕ True = False

部分計算機語言用1表示真,用0表示假,所以兩個位元組按位異或如下


00000000
xor 00000000
----------------------------------

00000000

============我是分界線1============

下面是兩個二進制數值進行異或計算:


11111111
xor 00000000
----------------------------

11111111

============我是分界線2============

現實中用的都是十進制的數值,那么我們來看一看兩個十進制數值是怎么進行異或計算:

5 ⊕ 2 = ?

1.進行異或計算前會把數值都轉換為二進制的:

5和2轉為二進制分別為:0101 、0010


0101
xor 0010
----------------------------

0111

2.再把結果 0111 轉換為十進制的:7

3.所以 5 ⊕ 2 = 7

巧用

與其它語言不同,C語言和C++語言的異或不用xor,而是用“^”,鍵入方式為Shift+6。(而其它語言的“^”一般表示乘方)

若需要交換兩個變數的值,除了通常使用的借用中間變數進行交換外,還可以利用異或,僅使用兩個變數進行交換,如:

詳解:

注意:

這樣就完成了a與b的交換。

綜上:同一變數與另一變數和其異或值異或等於自身。

用例:可使用於加密算法某一環節或更多環節,使算法更複雜,不易被破解,安全性更高。

相關搜尋

熱門詞條

聯絡我們