問64
頻出度★★☆
次の真理値表で示される入力x,yに対する出力zが得られる論理演算式はどれか。
| x | y | z |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
这道题的解析和你的作答记录。
次の真理値表で示される入力x,yに対する出力zが得られる論理演算式はどれか。
| x | y | z |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
x AND y(逻辑与)表示“只有两个都为 1 时才为 1”,所以输出依次为 0、0、0、1。这与表正好相反:x=y=0 的那一行是 0,x=y=1 的那一行是 1,与表不一致。
NOT(x AND y) 就是 NAND(与非),输出依次为 1、1、1、0。第 1 行的 z=1 是对的,但第 2 行 (0,1) 和第 3 行 (1,0) 会变成 1,与表中的 0 相矛盾。
正解 读真值表可以发现,输出 z 为 1 的只有 x=0 且 y=0 这一行;只要 x 或 y 中有一个为 1,z 就一定是 0。“只有两个输入都为 0 时才为 1”这种行为,相当于先求 x OR y,再把结果取反,也就是 NOT(x OR y)。实际验算一下:x OR y 依次为 0、1、1、1,用 NOT 取反后变成 1、0、0、0,与表中的 z 列完全一致。这种运算称为 NOR(或非)。因此正确答案是 ウ。
x OR y(逻辑或)表示“只要有一个为 1 就为 1”,所以输出依次为 0、1、1、1,与表中 z 列的 1、0、0、0 在每一行上都正好相反。它相当于漏掉了 NOT 的形式,就这样是得不到正确答案的。