使用卡诺图简化布尔表达式
Posted
技术标签:
【中文标题】使用卡诺图简化布尔表达式【英文标题】:Simplify boolean expression using Karnaugh map 【发布时间】:2015-07-30 04:15:36 【问题描述】:我有以下问题:
将以下布尔表达式表示为乘积和 使用卡诺图尽可能简化
我画了卡诺图,然后将我的值放在表中为真(第一个,B非D表示10,非B和D表示01)然后我们有以下值:0100,0110,1100,1110(因为 A 和 C 可以是 0 或 1)。所以我们得到:
我们注意到我们只有一组(蓝色圆圈) 然后我们有:
0100
0110
1100
1110
我们看到唯一不修改其值的变量是 B 和 D,因此我们得到以下简化版本:
B non D
但这只是括号中表达式的答案,没有减号。如果我在表达式前面有一个减号,有什么想法可以解决它吗?它如何改变我的表情?
我的第二个问题是当我遇到像这样的双重否定时我应该如何解决它
当映射时,第一个表示 1111,其余表示 0101、1101、0101,然后我以同样的方式解决它? 有任何想法吗? 谢谢!
【问题讨论】:
您的课程中涉及de Morgan 了吗? 您正在为四个变量使用卡诺图。但是,您的表达式仅取决于两个变量。A
和 C
不会出现。
【参考方案1】:
对于第一个问题,没有否定的表达式可以称为(B XOR D),所以带有否定的XOR基本上是XNOR。它可以用乘积之和表示为 (BD + B'D')
【讨论】:
【参考方案2】:(AC!(!B.!D)) + (!AC!(!B.!D)) + (A!C!(!B.!D))+(!A!C!(! B.!D)) 步骤
-
= C.!(!B.!D).(A+!A) + !C.!(!B.!D).(A+!A)
= C.!(!B.!D).1 + !C.!(!B.!D).1
= C.!(!B.!D) + !C.!(!B.!D)
= !(!B.!D).(C+!C)
= !(!B.!D)
= !B+!D
【讨论】:
以上是关于使用卡诺图简化布尔表达式的主要内容,如果未能解决你的问题,请参考以下文章