布尔代数:基本定律、真值表与化简方法

2026/08/16

布尔代数是一套处理二值状态的数学体系。变量通常只取 01,也可以解释为假与真、关闭与开启、低电平与高电平。它不使用普通算术中的加减乘除来描述数量,而是用 AND、OR、NOT 等逻辑运算表达条件之间的关系。

这套方法既是数字电路的理论基础,也广泛用于程序判断、数据库筛选和搜索条件。下面从符号与真值表开始,系统整理布尔代数定律、德摩根定律、表达式化简步骤和实际例子。

布尔代数的三种基本运算

布尔变量只能取两个值,三种基本运算分别是非、与、或:

运算常用写法输出为 1 的条件
NOT(非)A'¬AA 为 0
AND(与)A · BABA、B 都为 1
OR(或)A + B至少一个输入为 1

布尔代数中的加号表示 OR,不是数值相加,所以 1 + 1 = 1。相邻书写或乘号表示 AND,因此 1 · 0 = 0。例如:

Y = A(B + C')

它表示:只有 A 为真,并且 B 为真或 C 为假时,Y 才为真。括号用来确定运算顺序;通常先计算 NOT,再计算 AND,最后计算 OR。

如果需要结合门电路理解这些符号,可以阅读逻辑门完整指南。若想复习 0、1 作为数位时的含义,可查看二进制数制

用布尔真值表定义表达式

布尔真值表会列出所有可能的输入组合。若有 n 个相互独立的输入,完整真值表共有 2^n 行。两个输入有四行,三个输入有八行。

以表达式 Y = A + B' 为例:

ABB'Y = A + B'
0011
0100
1011
1101

计算复杂表达式时,先为中间结果建立列往往最稳妥。这里先求 B',再将它与 A 做 OR。两个布尔表达式只有在每一行的最终输出都相同时才等价,不能只比较一两个示例输入。

布尔代数基本定律

布尔代数定律允许我们在不改变输出的前提下重排、展开或删除项。以下规则对变量的两个可能取值都成立。

同一律与支配律

同一律不会改变原值:

A + 0 = A
A · 1 = A

支配律会把结果固定下来:

A + 1 = 1
A · 0 = 0

它们常用于消除表达式中已经确定的启用或禁用条件。

幂等律、互补律与双重否定

重复同一个条件不会增加信息:

A + A = A
A · A = A

一个变量与其反变量组合后,结果恒定:

A + A' = 1
A · A' = 0
(A')' = A

这些规则能够删除重复判断、互相矛盾的条件和多余的两次取反。

交换律与结合律

AND 和 OR 都允许交换顺序:

A + B = B + A
AB = BA

相同运算还可以重新分组:

(A + B) + C = A + (B + C)
(AB)C = A(BC)

但这不意味着 AND 与 OR 可以随意跨越移动。混合运算仍要遵守括号和运算优先级。

分配律

AND 对 OR 的分配形式与普通代数相似:

A(B + C) = AB + AC

布尔代数还有一个对偶形式,即 OR 对 AND 分配:

A + BC = (A + B)(A + C)

第二个等式在普通算术中并不成立,但可以通过展开、幂等律和吸收律验证。

吸收律

吸收律删除已经被更宽泛条件覆盖的项:

A + AB = A
A(A + B) = A

A + AB 中,只要 A 为 1,结果就已经为 1;若 A 为 0,AB 也必然为 0。因此 B 无法改变输出,AB 是冗余项。

德摩根定律

德摩根定律说明取反如何穿过括号中的 AND 或 OR:

(AB)' = A' + B'
(A + B)' = A'B'

把否定移入括号时,必须同时完成两件事:对每个变量取反,并把 AND 与 OR 互换。例如,“两个检查并非都通过”可写成 (AB)',它等价于“第一个检查未通过,或第二个检查未通过”,即 A' + B'

三个变量也按同一规则处理:

(ABC)' = A' + B' + C'
(A + B + C)' = A'B'C'

最常见的错误是只给变量加撇号,却忘记交换运算符。(A + B)' 的结果是 A'B',不是 A' + B'

如何化简布尔表达式

面对较长的布尔表达式,可以按以下顺序处理:

  1. 先消除双重否定,并用同一律、支配律处理常量。
  2. 只在有助于暴露重复项、互补项时展开或提取公因子。
  3. 用交换律和结合律把相关项放在一起。
  4. 应用幂等律、互补律和吸收律删除冗余项。
  5. 重复检查,直到没有可以继续删除的项。
  6. 对关键结果建立完整真值表,验证化简前后输出一致。

最短表达式不一定是最佳实现。硬件设计还要考虑现有门类型、传播延迟、功耗和毛刺;程序代码则要兼顾可读性以及短路求值产生的运行时行为。

四个表达式化简示例

示例一:化简 A + A'B

使用对偶分配律:

A + A'B
= (A + A')(A + B)
= 1(A + B)
= A + B

因此,原表达式与 A + B 在全部四种输入组合上具有相同输出。

示例二:删除互补分支

化简 AB + AB'

AB + AB'
= A(B + B')
= A · 1
= A

无论 B 是 0 还是 1,B 与 B' 中总有一个为真,所以结果只取决于 A。

示例三:结合分配律与吸收律

(A + B)(A + C)
= AA + AC + AB + BC
= A + AC + AB + BC
= A + BC

幂等律把 AA 变成 A,随后 A 吸收 ACAB

示例四:应用德摩根定律

(A + B')'
= A'(B')'
= A'B

外层取反把 OR 变成 AND,并对两个输入取反;双重否定再把 (B')' 还原为 B。

与项之和与或项之积

布尔表达式常写成两种规范结构。

与项之和(SOP)是多个 AND 项再进行 OR,例如 A'B + AB'。规范 SOP 中,每个乘积项包含全部变量,并可对应真值表中输出为 1 的一行。

或项之积(POS)是多个 OR 项再进行 AND,例如 (A + B)(A' + C)。每个和项可以对应真值表中输出为 0 的一行。

规范形式便于从真值表机械生成表达式,但通常不是最短形式。还可以使用卡诺图或逻辑化简软件进一步减少项数。SOP 自然对应“先 AND 后 OR”的门网络,POS 则对应“先 OR 后 AND”。

布尔代数在数字电路中的作用

每种基础逻辑门都实现一个布尔运算:AND 门实现逻辑与,OR 门实现逻辑或,NOT 门实现取反;NAND、NOR、XOR 和 XNOR 则提供常用组合关系。

化简表达式通常可以减少门和连线。例如,直接实现 AB + AB' 需要两条 AND 路径、一个反相器和一个 OR 级;化简为 A 后,在理想逻辑模型中可以直接连接信号。

不过,布尔等价只保证稳定状态下的功能相同。真实电路还有传播延迟、电气负载、时钟时序和竞争冒险等问题。工程设计必须在逻辑正确之外继续验证这些物理约束。

布尔规则也会以按位运算的形式出现在软件中。1010 AND 1100 得到 1000,因为每一列都独立遵循 AND 真值表。需要检查普通二进制算术时,可以使用二进制计算器;算术加法会传播进位,而按位逻辑不会。

程序条件与查询中的布尔逻辑

程序语言使用各自的符号表达相同的逻辑关系:

const canPublish = isEditor && (isOwner || hasApproval);

这里 && 表示 AND,|| 表示 OR。多数语言采用短路求值:结果一旦确定,就可能不再执行右侧表达式。因此,如果条件中包含函数调用或其他副作用,不能仅凭布尔代数等价就随意重写。

数据库和搜索条件同样需要清晰的括号。例如 status = published AND (category = guide OR category = reference) 与不加括号的表达式可能匹配不同记录。

常见错误

  • 把布尔加号当成算术加法;在布尔代数中,A + A = A
  • 使用德摩根定律时只取反变量,却没有交换 AND 和 OR。
  • 未确认优先级就删除括号,导致表达式含义改变。
  • 只测试少量输入便断言两个表达式等价。
  • 认为真值表相同的两个电路一定具有相同延迟和毛刺特性。
  • 混淆程序中的逻辑运算符、按位运算符和普通二进制算术。

常见问题

布尔代数有什么用途?

它用于描述与化简数字电路、编写程序条件、组合数据库与搜索过滤器、验证逻辑等价,以及分析任何由二状态决策构成的系统。

布尔代数是谁提出的?

乔治·布尔在 19 世纪建立了符号逻辑的代数基础。后来,克劳德·香农等人的工作把这套逻辑与开关电路联系起来,使它成为数字工程和计算机科学的基础。

布尔代数与二进制算术相同吗?

不同。两者都使用 0 和 1,但布尔代数把它们视为逻辑状态,并执行 AND、OR、NOT;二进制算术把它们视为二进制数位,需要处理进位与借位。二进制加法可以直观展示这种区别。

最重要的布尔代数定律有哪些?

实际化简最常用的是同一律、支配律、幂等律、互补律、交换律、结合律、分配律、吸收律和德摩根定律。

怎样证明两个布尔表达式等价?

可以用有效定律把一个表达式变换为另一个,也可以分别建立完整真值表并逐行比较输出。对于有限个布尔变量,完整真值表是穷尽性验证。

为什么要化简布尔表达式?

化简能够暴露无效条件,并减少逻辑运算、门数量、连线、功耗或代码复杂度。完成化简后仍需结合可读性、时序和具体实现条件评估最终方案。

总结

布尔代数把二状态决策变成可计算、可验证的数学表达。真值表定义行为,基本定律保持等价,德摩根定律负责在否定穿过括号时交换运算,而化简过程则删除不会影响输出的条件。掌握这些规则后,逻辑门、按位运算和复杂程序判断都会更容易分析。

管理员

管理员