IGCSE 计算机科学 (0478):综合学习笔记 – 布尔逻辑 (第 10 章)

你好!欢迎来到令人兴奋的布尔逻辑世界。别担心,虽然名字听起来很高深,但它实际上是数学中最基础的形式,因为它只处理两个值:真 (TRUE) 或 假 (FALSE)。计算机做出的每一个决定,从打开一个应用程序到运行自动驾驶汽车,归根结底都是这些简单的逻辑选择。掌握这一章是理解硬件如何“思考”的关键!

在本节中,我们将学习数字系统的基本组成部分:逻辑门


1. 布尔代数基础

什么是布尔逻辑?

布尔逻辑(或布尔代数)是由数学家乔治·布尔(George Boole)命名的一套逻辑系统。它是所有数字电子技术和计算机处理的基石。

  • 它仅使用两种状态:真 (TRUE)假 (FALSE)
  • 在计算机科学中,这些状态由二进制数字表示:
    • 真 (TRUE) 通常由二进制值 1(或“接通”/高电压)表示。
    • 假 (FALSE) 通常由二进制值 0(或“断开”/低电压)表示。
你知道吗?

逻辑门在 CPU 中是通过被称为晶体管的微小元件物理实现的。数以百万计的此类晶体管基于布尔逻辑协同工作!

核心要点:
布尔逻辑是决策的数学,仅使用 1 (真) 或 0 (假)。


2. 定义标准逻辑门

逻辑门是一种物理元件,它接收一个或多个二进制输入,并根据特定的逻辑规则产生单个二进制输出。

IGCSE 教学大纲要求你掌握六种标准逻辑门,外加一种变体(XOR/EOR)。除 NOT 门外,理论上所有逻辑门通常限制为两个输入,尽管你绘制的电路总共可能包含最多三个输入。

2.1 核心逻辑门 (NOT, AND, OR)

A) NOT 门(非门/反相器)

NOT 门是最简单的逻辑门,因为它只有一个输入端。它会将输入信号反转。

  • 定义:如果输入为假 (0),则输出为真 (1);反之亦然。
  • 逻辑表达式:NOT A (或 \(\bar{A}\))
  • 符号说明(见大纲第 34 页):一个三角形,输出线上带有一个小圆圈(反相气泡)。

真值表 (NOT):

A (输入)输出 X
01
10

类比:如果交通信号灯不是绿色 (0),输出结果就是停车 (1)。


B) AND 门(与门)

AND 门要求所有输入均为真,输出才为真。

  • 定义:仅当输入 A AND 输入 B 都为真 (1) 时,输出才为真 (1)。
  • 逻辑表达式:A AND B
  • 符号说明(见大纲第 34 页):一个“D”形。

真值表 (AND):

AB输出 X
000
010
100
111

记忆技巧:可以联想乘法。0 x 0 = 0,1 x 0 = 0,1 x 1 = 1。


C) OR 门(或门)

OR 门要求至少有一个输入为真,输出即为真。

  • 定义:如果输入 A OR 输入 B(或者两者)为真,则输出为真 (1)。
  • 逻辑表达式:A OR B
  • 符号说明(见大纲第 34 页):带有凹入输入侧的弧形盾牌形状。

真值表 (OR):

AB输出 X
000
011
101
111

记忆技巧:可以联想加法(除了 1+1 依然等于 1)。

2.2 派生逻辑门 (NAND, NOR, XOR/EOR)

D) NAND 门(与非门)

NAND 门是 AND 门的相反。仅当所有输入都为真时,输出才为假 (0)

  • 逻辑表达式:NOT (A AND B)
  • 符号说明:AND 符号,但在输出线上加了一个小圆圈(反相气泡)。

E) NOR 门(或非门)

NOR 门是 OR 门的相反。仅当所有输入都为假时,输出才为真 (1)

  • 逻辑表达式:NOT (A OR B)
  • 符号说明:OR 符号,但在输出线上加了一个小圆圈(反相气泡)。

F) XOR / EOR 门(异或门)

XOR 门仅在输入不同时才输出真。

  • 定义:如果输入 A 为真 OR 输入 B 为真,但不同时为真,则输出为真 (1)。
  • 逻辑表达式:A XOR B
  • 符号说明:OR 符号,但在输入侧多画了一条弧线。

真值表 (XOR):

AB输出 X
000
011
101
110

速查表:

核心逻辑门定义:
AND:需要所有输入为 1 (1, 1 -> 1)
OR:需要至少一个输入为 1 (0, 1 -> 1)
XOR:需要恰好一个输入为 1 (1, 0 -> 1)
NOT:翻转输入 (1 -> 0)


3. 处理逻辑电路与表达式

在考试中,你必须能够在三种格式之间进行转换:问题描述逻辑表达式逻辑电路

3.1 逻辑表达式(书写公式)

逻辑表达式是书写输入(A, B, C...)与最终输出(X)之间关系的一种正式方式。

示例:“如果门传感器 (A) 被激活 AND 窗户传感器 (B) 被激活,或者主电源 (C) 为关 (OFF),则警报 (X) 将响起。”

第 1 步:分配变量并识别运算。

  • A = 门传感器,B = 窗户传感器,C = 主电源。
  • “A AND B”
  • “C 为 OFF”意味着 NOT C。
  • 整体连接符为 OR。

第 2 步:书写表达式。

X = (A AND B) OR (NOT C)

始终使用括号来标明优先运算顺序(就像普通代数一样)。NOT 运算通常仅适用于其紧随其后的那个变量。

3.2 绘制逻辑电路

要根据表达式绘制电路,从左侧的输入变量开始,向右侧的最终输出绘制。

表达式: X = (A AND B) OR (NOT C)

电路构建步骤:

  1. 在左侧绘制 A、B 和 C 的输入线。
  2. 第一个运算是 (A AND B)。将 A 和 B 连接到一个 AND 门。该门的输出即为第一个临时结果(我们称之为 T1)。
  3. 第二个运算是 (NOT C)。将 C 连接到一个 NOT 门。该门的输出为 T2。
  4. 最终运算是 T1 OR T2。将 AND 门的输出 (T1) 和 NOT 门的输出 (T2) 连接到一个 OR 门
  5. OR 门的输出即为最终输出 X。

注意:大纲要求在绘制电路时不进行化简,这意味着你必须严格按照题目描述或表达式使用指定的逻辑门。

应避免的常见错误:
在绘制电路时,请确保连接输入到逻辑门的线路在汇合处有清晰的圆点(节点)标记。如果线路交叉但没有圆点,则表示它们没有连接。

核心要点:
编写表达式或绘制电路时,将问题分解为小的、可管理的逻辑门(AND/OR/NOT),并始终使用括号来澄清运算顺序。


4. 真值表(决策图)

真值表对于测试和记录逻辑电路或表达式至关重要。它列出了输入的所有可能组合,并显示了产生的输出。

4.1 确定行数

真值表所需的行数取决于输入的数量:

  • 如果有 n 个输入,则需要 \(2^n\) 行。
  • 1 个输入 (A) = \(2^1\) = 2 行 (0, 1)
  • 2 个输入 (A, B) = \(2^2\) = 4 行 (00, 01, 10, 11)
  • 3 个输入 (A, B, C) = \(2^3\) = 8 行 (000 到 111)

IGCSE 大纲将电路限制为最多三个输入,因此你最大的表格会有 8 行。

4.2 完成真值表(步骤详解)

让我们为表达式 X = (A AND B) OR (NOT C) 完成真值表。

第 1 步:设置输入(3 个输入需要 8 行)。

ABCT1 (A AND B)T2 (NOT C)X = T1 OR T2
000
001
010
011
100
101
110
111

第 2 步:计算中间列(T1 和 T2)。

  • T1 (A AND B):仅当 A 和 B 同时为 1 时,T1 才为 1。(第 7 行和第 8 行)
  • T2 (NOT C):T2 是 C 的相反值。

第 3 步:计算最终输出 (X)。

  • X = T1 OR T2:只要 T1 为 1 OR T2 为 1(或两者都为 1),X 就为 1。

完成后的真值表:

ABCT1 (A AND B)T2 (NOT C)X = T1 OR T2
000011
001000
010011
011000
100011
101000
110111
111101

核心要点:
在真值表计算中始终使用中间列(T1, T2 等)。这会让过程清晰并减少错误,特别是在处理复杂表达式时。


5. 从真值表或电路中导出表达式

有时题目会给出完整的真值表或逻辑电路,要求你写出对应的逻辑表达式。

5.1 从真值表导出表达式

书写表达式最简单的方法是只关注输出为真 (1) 的行。

使用上面的示例表,输出 X 在第 1, 3, 5, 7, 8 行中为 1。

第 1 步:找出导致输出为真 (1) 的输入组合。

  • 第 1 行:A=0, B=0, C=0。对应于:(NOT A) AND (NOT B) AND (NOT C)
  • 第 3 行:A=0, B=1, C=0。对应于:(NOT A) AND B AND (NOT C)
  • 第 5 行:A=1, B=0, C=0。对应于:A AND (NOT B) AND (NOT C)
  • 第 7 行:A=1, B=1, C=0。对应于:A AND B AND (NOT C)
  • 第 8 行:A=1, B=1, C=1。对应于:A AND B AND C

第 2 步:使用 OR 将所有这些可能性连接起来。

X = ((NOT A) AND (NOT B) AND (NOT C)) OR ((NOT A) AND B AND (NOT C)) OR (A AND (NOT B) AND (NOT C)) OR (A AND B AND (NOT C)) OR (A AND B AND C)

除非特别要求(通常超出 IGCSE 核心课程范围),否则不必担心化简该表达式。只需列出由 OR 连接的所有为真的组合即可。

5.2 从逻辑电路导出表达式

要从电路写出表达式,从最靠近输入的逻辑门开始,一直推导到最终输出。

过程示例:

  1. 标记输入 (A, B, C...)。
  2. 查看第一层逻辑门(最靠近输入),写出它们的中间表达式(例如,T1 = NOT A)。
  3. 查看第二层逻辑门。将中间结果作为它们的输入(例如,如果某个门接收 B 和 T1,则输出 T2 = B OR T1)。
  4. 持续进行直到达到最终输出 (X),并将所有中间变量代回最终表达式中。

如果起初觉得复杂也不用担心!多多练习绘制电路和填充表格,表达式与可视化电路之间的关系自然会变得烂熟于心。


6. 逻辑门的现实应用

逻辑电路无处不在,控制着需要根据输入(如传感器)做出基本决策的简单自动化系统。

场景:中央供暖系统

如果恒温器 (T) 感应到温度过低 (T=1),AND 系统定时器 (S) 当前设定为开启时间 (S=1),则中央供暖炉 (X) 应开启。此外,如果安全开关 (F) 被激活 (F=1),供暖炉应立即关闭。

  • 输入:T (恒温器过低), S (定时器开启), F (安全开关激活)。
  • 期望输出:X (供暖炉开启)。

分析:

  • T 和 S 必须同时为 1,因此我们需要一个 AND 门。
  • 安全开关 F 必须停止供暖炉。如果 F=1,X 必须为 0,无论 T 和 S 是什么。这意味着最终输出必须与 NOT F 进行 AND 运算。

逻辑表达式:
X = (T AND S) AND (NOT F)

这个简单的应用展示了逻辑门如何确保自动化过程中的安全性和功能性,将复杂的要求转化为简单的二进制条件。

最终核心要点:
布尔逻辑是计算机硬件的核心语言。掌握符号、定义以及在真值表、表达式和电路之间转换的过程——这对第 10 章的考试成功至关重要!