1
一切判断只有真和假
1847 年,数学家乔治·布尔发现:逻辑推理可以变成代数运算。把「真」写成 1,「假」写成 0,那么「并且」「或者」「不是」这些日常词语,都能变成有明确答案的算式。这套体系就叫布尔代数。
「周末而且天气好,我就去爬山」——这句话里去不去,取决于两个条件各自真假。布尔代数就是给这种日常推理建立的「算术」:条件都换成 0 和 1,结论就能算出来。
100 年后,工程师发现开关电路天然就是 0 和 1——布尔代数和电子电路一拍即合,成了整个数字世界的地基。
2
三种基本运算:与、或、非
把两个输入 a、b(各为 0 或 1)做运算,结果记进表格(真值表)。三张表建议各读一遍,非常短:
| a | b | AND(与) | OR(或) | NOT a(非) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | — |
AND(与)像串联电路:两个开关都闭合,灯才亮——苛刻,全票通过。
OR(或)像并联电路:任意一个闭合灯就亮——宽容,一票也行。
NOT(非)是个「唱反调」的:进来 1 出去 0,进来 0 出去 1。
编程里的写法基本一致:与 = &&,或 = ||,非 = !。比如「周末且天气好」写成 isWeekend && isSunny。
3
逻辑门:把数学变成芯片
用晶体管把三种运算做成实体电路,就叫逻辑门(AND 门、OR 门、NOT 门)。奇迹从这里开始:逻辑门可以拼出一切。
- 拼出加法半加器 = 1 个 XOR 门(异或,算「本位」)+ 1 个 AND 门(算「进位」)。计算机的加法,就是第 1 课的二进制 + 这里的逻辑门。
- 拼出记忆几个门首尾相连互相「锁住」状态,就成了能存 1 个比特的电路(触发器)。亿万个小记忆单元 = 内存条。
- 拼出判断把「如果条件为真就走这条线」做成电路(多路选择器),就是 CPU 里指令跳转的原型。
- 无限复制现代 CPU 芯片里有上百亿个晶体管,本质上是亿万个小逻辑门在同时做「与或非」。
乐高只有一种基本颗粒,却能拼出城堡和飞船。逻辑门就是计算机的乐高:三种门,拼出加法、记忆、判断,再拼出整个数字世界。
4
化简逻辑:聪明人的省材料艺术
布尔代数还能化简。比如 (A AND B) OR (A AND 非B) 看着复杂,其实永远等于 A——因为不管 B 是 0 还是 1,两项总有一项成立且仅依赖 A。工程师用这种化简让芯片用更少的门实现同样的功能:更快、更省电、更便宜。
这就是为什么说布尔逻辑是「数学直接变成产业」的经典案例:一门 1847 年的抽象代数,一百年后变成了硅谷。
?
常见疑问
XOR(异或)是什么?
「不同才为真」:两个输入不一样输出 1,一样输出 0。它是二进制加法的关键(1+1=0 进 1,正好是 XOR+进位),也是很多加密算法的积木。
「与或非」能表达所有逻辑吗?
能。数学上证明了 AND、OR、NOT 组合可以构造任何逻辑函数(完备性)。甚至只需要一种「与非门」(NAND)就能拼出其他所有门——所以早期芯片厂爱大量生产同一种门。
学编程需要精通真值表吗?
不需要背,但需要「手感」:写 if 条件时能看出「这个嵌套条件其实等价于一个 AND」。想练习的话,把生活里的话翻译成 && || ! 就很有帮助。
→