15

也许这对每个人来说都是显而易见的,但有人可以解释 XOR(或 Exclusive-OR)的名字来自哪里吗?独家这个词的真正含义是什么?这并不重要,但它从早上起就一直萦绕在我的脑海中。

OR:
0 0 0
0 1 1
1 0 1
1 1 1

XOR:
0 0 0
0 1 1
1 0 1
1 1 0

它是“输入 1,1 的唯一 0”、“OR 的特殊版本”还是其他什么?

4

8 回答 8

23

这是孩子们理解为 OR

你可以吃巧克力或者你可以吃冰淇淋

但是程序员会认为这两者兼而有之!

问:“你想要茶还是咖啡”
烦人的程序员回答 = 是

于 2011-03-07T19:34:41.797 回答
20

XOR 是“异或”,因为如果两个值互斥,即它们都不同,它只返回“真”值 1。

于 2011-03-05T22:34:15.057 回答
11

根据 Knuth 在 Vol。TAOCP 的 4A,George Boole “……写了 x+y 来代表析取,但他煞费苦心地从不使用这个符号,除非 x 和 y 互斥(不是都是 1)。如有必要,他写了 x+(1- x)y 以确保析取的结果永远不会是 2。”

XOR 是进位丢失的加法。

于 2011-03-05T23:12:12.237 回答
8

在两个操作数必须互斥(换句话说,不同)的意义上,它是互斥的。

于 2011-03-05T22:34:51.720 回答
5

这来自集合论。假设您有两个集合 A 和 B,以及一个可能在也可能不在这些集合中的元素。如果元素在集合 A 中,则第一个布尔输入为真。如果元素在集合 B 中,则第二个布尔输入为真。

如果元素对一个集合是“独占的”(如与另一个集合“不共享”),则 XOR 运算符将返回 true。来自维基百科的插图:

排他或

于 2011-03-05T22:52:52.110 回答
4

XOR 中的 Exclusive 意味着它所说的 - 必须排除两者之一。也就是说,一个或另一个。两者都没有,也没有——只有一个。至少我是这么理解的:)

于 2011-03-05T22:36:45.347 回答
3

它是排他性的,就像“只有一个”一样。换句话说,它是“两者之一,但不是两者”。

于 2011-03-05T22:35:12.053 回答
2

我今天读了一个很好的“简单英语”示例:

例如,考虑一下英语句子“你在星期二之前付钱给我,否则我会起诉”。如果那个“或”是逻辑连接词,那么当你在星期二之前付钱给我或者我起诉你时,这句话就成立了;所以你可以在星期一付钱给我,我仍然可以起诉你。但是“或”的这种特殊用法通常会被理解为要么你在星期二之前付钱给我,我不起诉你,要么你在星期二之前不给我钱,我起诉你——所谓的“独家或”。

Hugh Darwen,“关系数据库理论导论”,第 76 页。

于 2011-03-07T19:00:21.700 回答