AI 速读
用真值表和口诀认识基础逻辑门全家桶,从「异或」这个名字拆解说起,速览七种门。
这是《图灵完备》(Turing Complete)游戏笔记的第一篇。这款游戏让你从一颗逻辑门开始,亲手搭出一台能跑程序的完整 CPU。动手之前,先把地基打牢:认识逻辑门这一家子。
异或门:先拆名字#
异或 XOR,全称 Exclusive-OR。两个字拆开看:
- 异——不一样。两个输入不同的时候输出 1;
- 或——借的是普通或门那层意思,但它是排斥式的或:「要么 A,要么 B,但不能两者同时成立」。
把四种输入组合列成真值表,一目了然:
| A | B | XOR |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
对照普通或门 OR(inclusive-OR,兼容或)看差别更清楚——OR 是「有 1 就 1」,两者同时为 1 也输出 1:
| A | B | OR |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
同或门 XNOR(异或非)正好反过来:相同输出 1,不同输出 0,就是 XOR 的输出取反。
| A | B | XNOR |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
基础逻辑门全家桶#
XOR 下面还有几个更基础的门,《图灵完备》前几关用的基本就是它们。
非门 NOT#
只有一个输入,输出是输入的取反,也叫反相器(Inverter)。
| A | NOT A |
|---|---|
| 0 | 1 |
| 1 | 0 |
与门 AND#
所有输入全为 1 才输出 1,任何一个 0 都输出 0。可以理解成一票否决。
| A | B | AND |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
与非门 NAND#
与门取反。全为 1 才输出 0,其余情况都输出 1。它和 NOR 都自带「万能」属性——单独用它们就能拼出任意逻辑,游戏里用它们搭其他门是常规操作。
| A | B | NAND |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
或非门 NOR#
或门取反。全为 0 才输出 1,只要有任何一个 1 就输出 0。
| A | B | NOR |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
一表总结#
| 名称 | 英文 | 输出为 1 的条件 | 口诀 |
|---|---|---|---|
| 非门 | NOT | 输入为 0 | 取反 |
| 与门 | AND | 所有输入全为 1 | 全 1 才 1 |
| 或门 | OR | 至少一个输入为 1 | 有 1 就 1 |
| 与非门 | NAND | 不是全为 1 | AND 取反 |
| 或非门 | NOR | 所有输入全为 0 | OR 取反 |
| 异或门 | XOR | 两个输入不同 | 不同为 1 |
| 同或门 | XNOR | 两个输入相同 | 相同为 1 |
下一篇聊聊一个有意思的问题:为什么《图灵完备》开局只给你一颗与非门?答案要从数学上的「功能完备」和真实芯片的物理规律里找。