如何解决(A XOR B) 与 (!A XOR !B) 不一样吗?
我想知道 !(A xor B) 是否等于 (!A xor !B)? 我正在努力理解这个问题背后的逻辑。
解决方法
不,他们不是。
A xor B
等于 1
当且仅当 A
或 B
中的任何一个是 1
但不是两者都是。因此,!(A xor B)
等于 1
当且仅当 A
和 B
都相等。
而对于 (!A xor !B)
,您首先翻转位,然后进行 XOR。所以(!A xor !B) = (A xor B)
。
这是第一个的真值表:
A | B | A xor B | !(A xor B)
============================
0 | 0 | 0 | 1
0 | 1 | 1 | 0
1 | 0 | 1 | 0
1 | 1 | 0 | 1
对于第二个:
A | B | !A | !B | (!A xor !B)
=============================
0 | 0 | 1 | 1 | 0
0 | 1 | 1 | 0 | 1
1 | 0 | 0 | 1 | 1
1 | 1 | 0 | 0 | 0
,
如有疑问,请使用真值表。 A 和 B 可以是 1 或 0 所以:
A xor B:
0 1
1 0
! (A xor B)
1 0
0 1
! A xor ! B:
0 1
1 0
所以,答案是否定的。它们似乎与初始异或相同。
,一步一步地查看结果列,我们发现它们不会基于相同的输入产生相同的输出。
A | B | A XOR B | not(A XOR B) |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
A | B | !A | !B | (!A XOR !B) |
---|---|---|---|---|
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 0 | 0 |
它们不相等。您可以查看下表以获得进一步的解释。
+---+---+-------+--------+----+----+-------+
| A | B | (A^B) | !(A^B) | !A | !B | !A^!B |
+---+---+-------+--------+----+----+-------+
| 0 | 0 | 0 | 1 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 0 | 0 | 0 |
+---+---+-------+--------+----+----+-------+
编辑:计算 !(A^B)
而不使用 A、B、A' 和 B' 的 NOT 操作
XOR(A,B) = OR(AND(A,B'),AND(A',B))
将 DeMorgan 用于上述等式后:
NOT XOR(A,B) = AND(OR(A',B),OR(A,B'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。