在大多数情况下,您不会在编程中找到 Xand、Xor、nor、nand 逻辑运算符,但不要担心在大多数情况下您可以用其他运算符模拟它。
因为您没有说明任何特定的语言。我也不会做任何特定的语言。对于我的示例,我们将使用以下变量。
A = 3
B = 5
C = 7
对于代码,我会将其放在代码标记中,以便更容易看到我所做的事情,我还将在整个过程中遵循逻辑以显示最终结果。
NAND
也称为 Not And,可以使用 Not 运算符轻松模拟,(通常表示为 !)
您可以执行以下操作
if(!((A>B) && (B<C)))
如果 (!(F&&T))
如果(!(F))
如果(T)
在我们上面的例子中,这将是正确的,因为双方都不正确。从而给我们想要的结果
NOR
也称为 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,如果双方都是假的,或者双方都是真的,这只会返回真。当然,您可以将其称为 Not XOR (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)))
如果 (!(!(F && T) && (F || T)) )
如果 (!(!(F) && (T)) )
如果 (!(T && T) )
如果 (!(T))
如果 (F)
当然其他人的解决方案也可能说明了这一点,我将自己的答案放在这里,因为最佳答案似乎并不理解并非所有语言都支持 XOR 或 XAND,例如 C 使用 ^ 表示 XOR 而 XAND 是甚至不支持。
所以我提供了一些示例,说明如何在您的语言不支持 XOR 或 XAND 作为它们自己的运算符(如 Php if ($a XOR $B))的情况下使用基本运算符模拟它。
至于Xnot那是什么?独家不?所以不是吗?我不知道这在逻辑门中会是什么样子,我认为它不存在。因为 Not 只是将输出从 1 反转为 0 并将 0 反转为 1。
希望对你有所帮助。