真值表(truth table)列出所有可能的输入组合,以及表达式或电路在每一种组合下的输出。有 n 个输入就有 2n 行,所以第一步永远是算出自己应该写多少行。
这一课建立在计算带括号的表达式之上,因为真值表的每一行就是一次计算。它属于布尔逻辑模块。
怎样制作真值表?
- 数输入个数并算出行数:2 个输入 = 4 行,3 个输入 = 8 行,4 个输入 = 16 行。
- 按二进制计数顺序写输入行,从全 0 开始,到全 1 结束。
- 为每个括号、NOT 或逻辑门输出加一列中间列。
- 一次填一列,从上到下,而不是一次填一行。这样方法最稳定。
- 最后检查行数。
输入列的小规律:最右边的输入按 0、1、0、1 交替。再左边一列两个两个交替,0、0、1、1。三个输入中最左边的一列四个四个交替,0、0、0、0、1、1、1、1。
例题
为 Q = (A AND B) OR NOT C 制作完整的真值表。
三个输入,所以 23 = 8 行。
| A | B | C | A AND B | NOT C | Q |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 |
完整检查其中一行:A = 1、B = 1、C = 1 时,计算是 (1 AND 1) OR NOT 1 = 1 OR 0 = 1。输出列依次是 1、0、1、0、1、0、1、1,共有五个 1 和三个 0。
常见错误
常见失误是只写看起来有意思的行,或者不小心重复了某一行。
**两个输入的错误表格:**只有 00、01、11 三行,漏了 10。
输出列只有三个值而不是四个,表格不完整。
纠正方法是先数行数,并在动输出列之前先写好所有输入列。两个输入时,永远写 00、01、10、11。
自测
1. 为 Q = (A OR B) AND NOT (A AND B) 制作真值表。
查看答案
| A | B | A OR B | A AND B | Q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 |
只有当两个输入不同时,输出才是 1。
2. 四个输入需要多少行?
查看答案
24 = 16 行。
3. 按 00、01、10、11 的顺序,写出 Q = A AND NOT B 的输出列。
查看答案
00:0 AND 1 = 0。01:0 AND 0 = 0。10:1 AND 1 = 1。11:1 AND 0 = 0。输出:0、0、1、0。
接下来学什么?
下一步,不看公式,改看图:解读简单的逻辑电路。布尔与数字表示实验室可以生成小表格,供你和自己的结果对照。
如果你平时能做对,却在时间紧张时漏行,我们的老师可以在一对一线上计算机科学补习中和你一起检查你的做题流程。