[英]Logic gate whose truth is 1101
有没有办法从想要的真值表中找到逻辑门或如何制作更复杂的门/位运算符我希望有这个真值表:
0 0 = 1
0 1 = 1
1 0 = 0
1 1 = 1
如果您无法从表格中看到它,则有一种正式的方法可以做到这一点。 为表写出sum of products
表达式的总和。
如果0 0 = 1
,则 A'B' 在表达式中。
如果0 1 = 1
,则 A'B 在表达式中。
如果1 1 = 1
,则 AB 在表达式中。
那么,F = A'B' + A'B + AB
现在,简化表达式:
F = A'B' + A'B + AB
F = A'(B'+B) + AB Distribution Law
F = A'(1) + AB Complement Law
F = A' + AB Identity Law
F = A'(B + 1) + AB Annulment Law
F = A'B + A' + AB Distribution Law
F = (A' + A)B + A' Distribution Law
F = (1)B + A' Complement Law
F = B + A' Identity Law
它not(A) or B
。
您必须使用not
门和or
门。
正如评论中所指出的,您可以从 function 的negated
版本中得出。
如果1 0 = 0
,则 F' = AB'
简单地说,F = not(A and not(B))
。 如果您分发not
,那么它将对应于与上面相同的 boolean 表达式。
感谢指出更短方法的评论。
真值表恰好给出了 0 的一种可能性。这与 OR 运算符的模式相同(也是 0 的一种可能性),除了第一个操作数应该被翻转。 因此,应该取反第一个操作数以获得所需的结果:
NOT(A) OR B
这实际上是蕴涵运算符:当且仅当第一个操作数为真而第二个不为真时,表达式为假:
A => B
如果我们用操作数 00、01、10 和 11 的 4 个结果位来表示一个运算符,那么这个运算符的代码为 1101(从上到下阅读 output 列)。 对于所有可能的操作,我们有这个:
Output | 表达 |
---|---|
0000 | FALSE |
0001 | A AND B |
0010 | A AND NOT(B) |
0011 | A |
0100 | NOT(A) AND B |
0101 | B |
0110 | A XOR B |
0111 | A OR B |
1000 | NOT(A OR B) |
1001 | A <=> B |
1010 | NOT B |
1011 | B => A |
1100 | NOT A |
1101 | A => B |
1110 | NOT(A AND B) |
1111 | TRUE |
有许多替代方法可以编写这些表达式,但作为一个经验法则:如果您需要三个 1 输出,请寻找一个OR
运算符,其中可能需要翻转一个或两个 arguments。 如果您需要一个 1 输出,请使用AND
运算符执行相同的操作。 如果您有两个 1 输出,请对XOR
(或<=>
)运算符执行相同的操作,除非是其中一个操作数自行确定结果的微不足道的情况。
如果你的输入是 X1 和 X2 并且你想要一个 1 作为 output,你可以看看很容易定义的组合:three 只有一个 0 - 然后反转它
你需要 1 x not 和 1 x 或者你需要 2 x not 和 1 x and
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.