我是布尔代数的新手,不知道如何处理负表达式,如果你能在步骤中解释它
A'B'C'+A'B'C+A'BC+AB'C+ABC
这可以读作不是A也不是B也不是C或者不是A也没有B和C。。。。。"只是指输入反转,如果它与out一起,则"不反转"。+是或门,而字母背靠背或将它们相乘将是一个和门。
因此A’B’C’+A’B’C+A’BC+AB’C+ABC可以看作0001+021+110<em+1>1其中,如果A、B和C上的输入对应于其中一个集合,则您将得到1作为答案。
首先让我们对表达式中使用的符号达成一致
A'B'C'+A'BC+AB'C+ABC:
Notation Bool operation Priority CPU instruction
' behind Bool variable negation highest NEG
two adjacent variables logical AND high AND
+ between two variables logical OR low OR
( ) priority of oper. increased
然后可以将您的表达式重写为
((NOT A) AND (NOT B) AND (NOT C)) OR
((NOT A) AND (NOT B) AND ( C)) OR
((NOT A) AND ( B) AND (C)) OR
(( A) AND (NOT B) AND (C)) OR
(( A) AND ( B) AND (C))
下一步是计算所有最内括号的内容,例如,让我们将(NOT A(计算为另一个名为notA的变量。这允许去掉一个级别的括号:
(notaA AND notB AND notC) OR
(notA AND notB AND C) OR
(notA AND B AND C) OR
( A AND notB AND C) OR
( A AND B AND C)
重复计算,直到不再有括号:
notAnotBnotC OR notAnotBC OR notABC OR AnotBC OR ABC