也许这对每个人来说都是显而易见的,但是有人可以解释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”,“OR的特殊版本”还是别的什么?“
答案 0 :(得分:17)
孩子们理解为OR
你可以拥有巧克力 OR 有冰淇淋
但程序员会认为这两者都有!
问:“你要茶还是咖啡” 恼人的程序员回答=是答案 1 :(得分:16)
XOR是一个“异或”,因为如果两个值是独占的,它只返回“真”值1,即它们都是不同的。
答案 2 :(得分:10)
据Knuth in Vol。 TAOCP的4A,乔治布尔“......写了x + y代表分离,但他努力不使用这种表示法,除非x和y相互排斥(不是两者都有)。如果有必要,他写了x +(1- x)y以确保分离的结果永远不会是2。“
XOR是随着携带丢失而增加的。
答案 3 :(得分:8)
它的独特之处在于两个操作数必须互相排斥(换句话说,不同)。
答案 4 :(得分:5)
这来自集合论。考虑您有两个集合A和B,以及一个可能存在或不存在于这些集合中的元素。如果元素在集合A中,则第一个布尔输入为true。如果元素在集合B中,则第二个布尔输入为真。
如果元素对一个集合是“独占的”(如与另一个集合“不共享”),则XOR运算符将返回true。插图from wikipedia:
答案 5 :(得分:4)
XOR独家意味着它所说的 - 必须排除其中一个。也就是说,一个或另一个。既不是,也不是 - 只有一个。至少这就是我对它的理解:)
答案 6 :(得分:3)
它与“只有一个”一样独占。换句话说,它是“两个中的一个,但不是两个。”
答案 7 :(得分:1)
我今天读了一个很好的“普通英语”例子:
例如,考虑一下英语 句子,“你在周二或周二付钱给我 我会起诉。“如果那个”或“是” 逻辑连词,然后是句子 当你付钱给我时,这是真的 星期二或我起诉你;所以你可以付钱 我星期一,我仍然可以起诉 您。但这种“或”的特殊用法 通常被认为是指 你要么在星期二和我之间付钱给我 不要起诉你,或者你不付钱给我 星期二,我会起诉你 - 所谓的“独家或”。
Hugh Darwen,“关系数据库理论导论”,第76页。