邏輯中的一種連線詞,被稱為“異或”,或互斥析取。如果兩個條件中恰好一個(而不是兩者都)為真,則結果為真。異或運算沒有標準符號,但有時表示為 (本文采用)或
(Simpson 1987, pp. 539 and 550-554)。
讀作 “
aut
”,其中 “aut” 在拉丁語中表示 “或,但不同時”。異或門的電路圖符號如上圖所示。在集合論中,
通常稱為對稱差。異或函式實現為Xor[predicate1, predicate2, ...].
二元異或運算 與不等價
相同。
可以使用 AND 和 OR 門實現為
|
(1)
| |||
|
(2)
|
其中 表示 AND,
表示 OR,並且可以使用僅 NOT 和 NAND 門實現為
|
(3)
|
(Simpson 1987),其中 表示 NAND。
| 真 | 真 | 假 |
| 真 | 假 | 真 |
| 假 | 真 | 真 |
| 假 | 假 | 假 |
二項式係數 mod 2 可以使用異或運算
XOR
計算,使得模 2 的帕斯卡三角形非常容易構建。
對於多個引數,異或被定義為當奇數個引數為真時為真,否則為假。這個定義在計算機科學中非常常見,其中異或通常被認為是模 2 加法。在這種背景下,它出現在模 2 的多項式代數、具有全加器的算術電路以及奇偶校驗生成或校驗中。雖然這意味著多引數“異或”不再被認為是“互斥或”運算,但這種形式在數學邏輯中很少使用,因此不會引起太多混淆。異或運算是結合律的,所以 與
相同。多引數異或的計算需要評估其所有引數以確定真值,因此沒有“惰性”特殊評估形式(如 AND 和 OR 那樣)。
因此,三元異或運算子具有以下真值表。
| 真 | 真 | 真 | 真 |
| 真 | 真 | 假 | 假 |
| 真 | 假 | 真 | 假 |
| 真 | 假 | 假 | 真 |
| 假 | 真 | 真 | 假 |
| 假 | 真 | 假 | 真 |
| 假 | 假 | 真 | 真 |
| 假 | 假 | 假 | 假 |
也可以定義一個按位異或版本,它對兩個數字 和
的二進位制數字執行按位異或,然後將結果二進位制數轉換回十進位制。按位異或在 Wolfram 語言中實現為BitXor[n1, n2, ...]。上面的圖示繪製了從
到 31 的數字陣列的按位異或 (Stewart 2000; Rangel-Mondragon; Wolfram 2002, p. 871)。