跳转至内容

计算机硬件基础:德摩根定律

来自维基教科书,开放的书籍,开放的世界

试卷 2 - ⇑ 计算机系统基础 ⇑

← 布尔恒等式 德摩根定律 门转换 →


德摩根定律用于简化布尔方程,以便您可以构建仅涉及一种类型门的方程,通常仅使用与非门或或非门。 这可以导致更便宜的硬件。 你需要记住两条定律

规则 1 规则 2

记住德摩根定律的一个简单方法是通过押韵:“打破线,改变符号”

让我们通过创建一个真值表来证明我没有骗你,以证明:

答案

P Q
0 0 0 1 1 1 1
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 0

由于第 4 列和最后一列的值对所有行都相同(涵盖了对变量的所有可能的真值赋值),因此我们可以得出结论,这两个表达式在逻辑上是等价的。


现在我们证明 通过相同的方法

答案

P Q
0 0 0 1 1 1 1
0 1 0 1 1 0 1
1 0 0 1 0 1 1
1 1 1 0 0 0 0

有一个相当好的具体方法可以理解这一点,用一个用两个挂锁锁上的门,挂锁 1 和挂锁 2。

我们将使用 代表挂锁 1 已打开,以及 代表挂锁 2 已打开。

如果挂锁 1 打开并且挂锁 2 打开 (),你可以通过大门。如果挂锁 1 锁定或挂锁 2 锁定 (),你不能通过大门。

由于“你不能通过大门”与“你可以通过大门”的相反(否定)相同,并且记住

大门打开 = 大门关闭 = 你应该能够看到 NOT{大门打开} =

=

示例:使用布尔代数简化布尔方程

简化以下内容:

0 0
1
1
0
1
0
0 1
1
0
0
1
0
1 0
0
1
1
1
0
1 1
0
0
0
0
1

从真值表中我们可以看到它等于 。但我们也应该知道如何使用布尔恒等式来得到这个结果。让我们试一试

  1. 使用德摩根定律:。其中 P = 且 Q =
  2. 分别对等式两边进行操作,并运用德摩根定律将中间的门转换为与门
  3. 现在处理新方程的左边 (),再次运用德摩根定律 (),并将双重否定消去
  4. 将等式两边展开
  5. 根据恒等式 ,我们可以用 0 代替左边
  6. 根据恒等式 ,我们可以忽略 0,得到
  7. 根据恒等式 ,我们可以交换值
    = 我们通过真值表计算得到的值

让我们尝试另一个例子

练习:化简布尔表达式

使用德摩根定律和布尔恒等式化简以下表达式。通过构建真值表检查你的答案

答案

  1. 利用德摩根定律:
  2. 得到
  3. 利用布尔代数恒等式
  4. 得到
  5. 利用布尔代数恒等式
  6. 简化得到


答案

0 0
1
1
1
1
0
0 1
1
0
0
0
1
1 0
0
1
1
0
1
1 1
0
0
1
0
1

如果你能理解,你会注意到这等同于。但我们最好用布尔代数恒等式和德摩根定律来验证我们是否得到了正确的答案。

  1. 利用德摩根定律:
  2. 分别对等式两边进行操作,并运用德摩根定律将中间的门转换为与门
  3. 消除双重否定
  4. 现在处理我们新方程的左侧,再次应用德摩根定律并消除双重否定
  5. 将等式两边展开
  6. 根据恒等式 ,我们可以替换左侧
  7. 根据恒等式 ,我们可以忽略 1,得到
  8. 根据恒等式 ,我们可以交换值
    = 我们通过真值表计算的值

答案

0 0
0
1
1
0
0 1
1
0
1
0
1 0
1
0
0
1
1 1
1
0
1
0

如果你能理解这一点,你会注意到这等价于 。但是我们最好用布尔代数恒等式和德摩根定律来确认我们得到了正确的答案。

  1. 利用德摩根定律:
  2. 分别取每一边 (P= 以及 Q=) 并应用德摩根定律将中间门转换为 AND
  3. 消去双重否定:
  4. 将等式两边展开
  5. 根据恒等式 可以用0替换右式
  6. 根据恒等式 可以忽略0,得到
    = 用真值表计算得到的值


华夏公益教科书