逻辑中的一种连接词,被称为“异或”,或互斥析取。如果两个条件中恰好一个(而不是两者都)为真,则结果为真。异或运算没有标准符号,但有时表示为 (本文采用)或
(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)。