20

什么是 XAND 和 XOR?还有一个XNot

4

17 回答 17

42

XOR排他或的缩写。它是一种逻辑二元运算符,要求两个操作数之一为真,但不能同时为真。

所以这些陈述是正确的:

TRUE XOR FALSE
FALSE XOR TRUE

这些陈述是错误的:

FALSE XOR FALSE
TRUE XOR TRUE

确实不存在“排他的 and”(或XAND)这样的东西,因为理论上它与 . 具有相同的确切要求XOR。也没有一个XNOTsinceNOT是一个否定其单个操作数的一元运算符(基本上它只是将一个布尔值翻转到它的对立面),因此它不能支持任何排他性的概念。

于 2010-04-15T15:12:24.703 回答
21

伙计们,不要吓唬别人(嘿!开个玩笑),但这实际上都是对等和同义词的问题:

第一:

“XAND”在逻辑上不存在,“XNAND”也不存在,但是“XAND”通常是由一个好学但困惑的初始逻辑学生想到的。(哇!)。它源于这样的想法,如果存在 XOR(异或),那么存在“XAND”(“异或”)是合乎逻辑的。合理的建议是“ IAND”(“包容性” AND),它也未被使用或识别。所以:

 XNOR <=> !XOR <=> EQV

而这一切只是描述了一个唯一的运算符,称为等价运算符(<=>,EQV),所以:

A  |  B  | A <=> B | A XAND B | A XNOR B | A !XOR B | ((NOT(A) AND B)AND(A AND NOT(B)))
---------------------------------------------------------------------------------------
T  |  T  |    T    |     T    |     T    |     T    |                T    
T  |  F  |    F    |     F    |     F    |     F    |                F    
F  |  T  |    F    |     F    |     F    |     F    |                F    
F  |  F  |    T    |     T    |     T    |     T    |                T    

并且只是一个结束评论:只有当且仅当基本运算符不是一元时,'X'前缀才可能。所以,XNOR <=> NOT XOR <=/=> X NOR。

和平。

于 2011-04-19T16:19:07.020 回答
9

XOR 是异或。它的意思是“被异或的两个项目之一是真的,但不是两个都是真的。”

TRUE XOR TRUE : FALSE
TRUE XOR FALSE : TRUE
FALSE XOR TRUE : TRUE
FALSE XOR FALSE: FALSE

维基百科的异或文章

XAND 我没听说过。

于 2010-04-15T15:10:45.687 回答
5

在查尔斯·佩佐德(Charles Petzold)写的名为“代码”的书中,他说有 6 个门。有 AND 逻辑门、OR 门、NOR 门、NAND 门和 XOR 门。他还提到了第 6 道门,简单地称其为“巧合门”,并暗示它并不经常使用。他说它具有与异或门相反的输出,因为当异或门具有等式的两个真或两个假边时,异或门的输出为“假”,而异或门使其输出为真的唯一方法是等式的一方为真,另一方为假,这并不重要。巧合与此完全相反,因为使用巧合门,如果一个为真而另一个为假(不管哪个是假的),那么在这两种情况下它的输出都是“假的”。巧合门使其输出为“真”的方式是双方要么为假要么为真。如果两者都为假,则巧合门将评估为真。如果两者都为真,那么在这种情况下巧合门也将输出“真”。

所以在异或门输出“假”的情况下,重合门将输出“真”。在异或门输出“真”的情况下,巧合门输出“假”。

于 2011-06-02T09:11:14.293 回答
4

嗯..我知道 XOR(异或)和 NAND 和 NOR。这些是逻辑门并且有它们的软件类似物。

本质上它们的行为是这样的:

只有当两个参数之一为真时,XOR 才为真,但不是两者都为真。

F XOR F = F
F XOR T = T
T XOR F = T
T XOR T = F

只要两个论点都不正确,NAND 就是正确的。

F NAND F = T
F NAND T = T
T NAND F = T
T NAND T = F

NOR 仅当两个论点都不为真时才为真。

F NOR F = T
F NOR T = F
T NOR F = F
T NOR T = F
于 2010-04-15T15:17:51.133 回答
2

没有像 Xand 或 Xnot 这样的东西。有Nand,与and相反

TRUE and TRUE   : TRUE
TRUE and FALSE  : FALSE
FALSE and TRUE  : FALSE
FALSE and FALSE : FALSE


TRUE nand TRUE   : FALSE
TRUE nand FALSE  : TRUE
FALSE nand TRUE  : TRUE
FALSE nand FALSE : TRUE
于 2010-04-15T15:17:28.840 回答
2

除此之外,由于我只是在处理它,如果您正在寻找“等价门”或“符合门”作为您的 XAND,那么您真正拥有的只是“等于”。

如果您考虑一下,从上面给出 XOR:

F XOR F = F
F XOR T = T
T XOR F = T
T XOR T = F

我们期望 XAND 应该是:

F XAND F = T
F XAND T = F
T XAND F = F
T XAND T = T

这不完全一样吗?

F == F = T
F == T = F
T == F = F
T == T = T
于 2012-10-18T21:44:46.383 回答
2

有一个简单的论据来查看二进制逻辑门的来源,使用已经出现的真值表。

有六个表示交换运算,其中 a op b == b op a。每个二元运算符都有一个关联的三列真值表来定义它。前两列可以固定为所有运算符的定义表。

考虑第三列。它是四个二进制数字的序列。有十六种组合,但交换律的约束有效地从真值表中删除了一行,所以它只有八种。还有两个被淘汰了,因为所有的真理或所有的错误都不是有用的门。这些是熟悉的 or、and 和 xor,以及它们的否定。

于 2012-11-21T02:09:49.657 回答
2

这就是您要查找的内容: https ://en.wikipedia.org/wiki/XNOR_gate

下面是逻辑表:

A B   XOR XNOR
0 0   0   1 
0 1   1   0
1 0   1   0
1 1   0   1

XNOR 有时称为 XAND。

于 2017-03-01T15:15:54.553 回答
2

在大多数情况下,您不会在编程中找到 Xand、Xor、nor、nand 逻辑运算符,但不要担心在大多数情况下您可以使用其他运算符模拟它。

因为你没有说任何特定的语言。我也不会做任何特定的语言。对于我的示例,我们将使用以下变量。

A = 3
B = 5
C = 7

对于代码,我会将其放在代码标记中以便更容易查看我所做的事情,我还将在整个过程中遵循逻辑以显示最终结果。

与非

也称为 Not And,可以使用 Not 运算符轻松模拟,(通常表示为 !)

您可以执行以下操作

if(!((A>B) && (B<C)))

如果 (!(F&&T))
如果(!(F))
如果(T)

在我们上面的例子中,这将是真的,因为双方都不是真的。从而给我们想要的结果
南德

也不

也称为 Not OR,就像 NAND 一样,我们可以使用 not 运算符对其进行模拟。
if(!((A>B) || (B<C)))

如果 (!(F||T))
如果(!(T))
如果(F)

同样,这将为我们提供预期的结果
也不

异或

异或或异或仅当一个为真而另一个为假时才为真

If (!(A > C && B > A) && (A > C || B > A) )

如果 (!(F && T) && (F || T) )
如果 (!(F) && (T) )
如果 (T && T)
如果 (T)

所以这是一个例子,它只适用于 1 或另一个为真,我将证明如果两者都为真,那将是假的。

If ( !(A < C && B > A) && (A < C || B > A) )

如果 ( !(T && T) && (T ||T) )
如果 ( !(T) && (T) )
如果 ( F && T )
如果 (F)

而且都是假的

If (!(A > C && B < A) && (A > C || B < A) )

如果 (!(F && F) && (F || F) )
如果 (!(F) && (F) )
如果 (T && F)
如果 (F)


和图片来帮助
异或

XAND

最后是我们的 Exclusive And,如果双方都是假的,或者双方都是真的,这只会返回真。当然你可以称之为非异或(NXOR)

两者都是真的 If ( (A < C && B > A) || !(A < C || B > A) )

如果 ((T&&T) || !(T||T))
如果 (T || !T)
如果 (T || F)
如果 (T)

两者都是假的 If ( (A > C && B < A) || !(A > C || B < A) )

如果 ( (F && F) || !(F ||F))
如果 ( F || !F)
如果 ( F || T)
如果 (T)

最后一个是真的,另一个是假的。 If ((A > C && B > A) || !(A > C || B > A) )

如果 ((F && T) || ! (F || T) )
如果 (F||!(T))
如果 (F||F)
如果 (F)

或者,如果您想走 NXOR 路线...
If (!(!(A > C && B > A) && (A > C || B > A)))

If (!(!(F && T) && (F || T)) )
If (!(!(F) && (T)) )
If (!(T && T) )
If (!(T))
If (F)

在此处输入图像描述

当然,其他人的解决方案也可能说明了这一点,我将自己的答案放在这里,因为最佳答案似乎并不理解并非所有语言都支持 XOR 或 XAND,例如 C 使用 ^ 表示 XOR 而 XAND 甚至不是支持的。

因此,我提供了一些示例,说明在您的语言不支持 XOR 或 XAND 作为它们自己的运算符(如 Php)的情况下,如何使用基本运算符模拟它if ($a XOR $B)

至于Xnot那是什么?独家不?所以不是吗?我不知道这在逻辑门中会是什么样子,我认为它不存在。因为 Not 只是将输出从 1 反转为 0 并将 0 反转为 1。

无论如何希望这会有所帮助。

于 2018-12-06T20:50:23.887 回答
1

Wiki 上的真值表阐明了http://en.wikipedia.org/wiki/Logic_gate 没有 XAND,这就是问题合法性的第 1 部分的结尾。[关键是你总是可以不用它。]

我个人将 XNOT(也不存在)误认为是 NAND 和 NOR,理论上这是你唯一需要使所有其他门链接的东西

我相信混淆源于您可以使用 NAND 或 NOR(创建其他所有东西 [但它们不需要一起使用]),所以它被认为是 NAND 和 NOR 一起的东西,这基本上离开了头脑取代未使用的剩余名称 XNOT,因此我错误地将其称为 XNOT,意思是它是 NAND 或 NOR。

我想人们也可能在快速讨论中错误地尝试使用 XAND,就像我做 XNOT 一样,指的是“一个门(以各种安排复制)使所有其他门成为逻辑现实。

于 2015-05-22T10:15:36.290 回答
1

XOR(不是两者都不是)B'0110' 是 IFF(当且仅当)B'1001' 的逆(对偶)。

于 2015-11-28T21:42:11.293 回答
0

XOR 的行为就像 Austin 解释的那样,作为异或,A 或 B 但不是两者都不会产生错误。

两个输入有 16 种可能的逻辑运算符,因为真值表由 4 种组合组成,有 16 种可能的方式来排列两个布尔参数和相应的输出。

根据这篇维基百科文章,他们都有名字

于 2010-04-15T15:23:06.600 回答
0

众所周知,XOR 定义是奇校验函数。对于两个输入:

A XOR B = (A AND NOT B) OR (B AND NOT A)

XOR 的补码是 XNOR

A XNOR B = (A AND B) OR (NOT A AND NOT B)

此后,正常的两输入 XAND 定义为

A XAND B = A 而不是 B

补码是 XNAND:

A XNAND B = B OR NOT A

这个 XAND 定义的一个很好的结果是,任何双输入二进制函数都可以使用不超过一个逻辑函数或门来简明地表达。

            +---+---+---+---+
   If A is: | 1 | 0 | 1 | 0 |
  and B is: | 1 | 1 | 0 | 0 |
            +---+---+---+---+
    Then:        yields:     
+-----------+---+---+---+---+
| FALSE     | 0 | 0 | 0 | 0 |
| A NOR B   | 0 | 0 | 0 | 1 |
| A XAND B  | 0 | 0 | 1 | 0 |
| NOT B     | 0 | 0 | 1 | 1 |
| B XAND A  | 0 | 1 | 0 | 0 |
| NOT A     | 0 | 1 | 0 | 1 |
| A XOR B   | 0 | 1 | 1 | 0 |
| A NAND B  | 0 | 1 | 1 | 1 |
| A AND B   | 1 | 0 | 0 | 0 |
| A XNOR B  | 1 | 0 | 0 | 1 |
| A         | 1 | 0 | 1 | 0 |
| B XNAND A | 1 | 0 | 1 | 1 |
| B         | 1 | 1 | 0 | 0 |
| A XNAND B | 1 | 1 | 0 | 1 |
| A OR B    | 1 | 1 | 1 | 0 |
| TRUE      | 1 | 1 | 1 | 1 |
+-----------+---+---+---+---+

请注意,XAND 和 XNAND 缺乏自反性。

如果我们添加编号种类的异与以对应于它们对应的最小项,则此 XNAND 定义是可扩展的。然后 XAND 必须有 ceil(lg(n)) 或更多输入,未使用的 msb 全为零。除非在其他类型的上下文中使用,否则普通类型的 XAND 不带数字。

各种 XAND 或 XNAND 门可用于解码。

XOR 也可以扩展到任意数量的位。如果个数是奇数,结果是一,如果是偶数,结果是零。如果对 XOR 的任何输入或输出位进行补码,则该函数变为 XNOR,反之亦然。

我没有看到XNOT的定义,我将提出一个定义:

让它与高阻抗相关(Z,无信号,或者可能是空值布尔类型对象)。

0xnot 0 = Z
0xnot 1 = Z
1xnot 0 = 1
1xnot 1 = 0
于 2013-09-24T01:31:32.180 回答
0

看一看

x   y      A    B   C   D   E   F   G   H   I   J   K   L   M   N

·   ·      T    ·   T   ·   T   ·   T   ·   T   ·   T   ·   T   ·
·   T      ·    T   T   ·   ·   T   T   ·   ·   T   T   ·   ·   T
T   ·      ·    ·   ·   T   T   T   T   ·   ·   ·   ·   T   T   T
T   T      ·    ·   ·   ·   ·   ·   ·   T   T   T   T   T   T   T

A) !(x OR y)    
B) !(x) AND y   
C) !(x) 
D) x AND !(y)   
E) !(y) 
F) x XOR y  
G) !(x AND y)   
H) x AND y  
I) !(x XOR y)   
J) y    
K) !(x) OR y    
L) x    
M) x OR !(y)    
N) x OR y
于 2014-08-16T01:17:50.187 回答
0

OMG,XAND 门确实存在。我爸爸正在上技术课找工作,而且有一个 XAND 门。人们说 OR 和 AND 是完全相反的,所以他们将其扩展为异门逻辑:

XOR:一个另一个,但不是两者兼而有之。

Xand:一个一个,但不是两者兼而有之。

这是不正确的。如果要从 XOR 更改为 XAND,则必须翻转 'AND' 和 'OR' 的每个实例:

XOR:一个另一个,但不是两者兼而有之。

XAND:一个一个,但不是一个。

因此,当且仅当两个输入相等时,XAND 为真,无论输入是 0/0 还是 1/1

于 2015-07-27T15:35:23.830 回答
-1

首先是逻辑,然后是名称,可能是以前命名的模式。

因此 0+0=0; 0+1=1;1+0=1;1+1=1 - 出于某种原因,这被称为 OR。

那么0-0=0;0-1=1;1-0=1;1-1=0 - 它看起来像 OR 除了......让我们称之为 XOR。

也是 0*0=0; 0*1=0;1*0=0;1*1=1 - 出于某种原因,这被称为 AND。

那么0~0=0;0~1=0;1~0=0;1~1=0 - 它看起来像 AND 除了......我们称之为 XAND。

于 2014-09-17T19:33:23.130 回答