跳到主要内容

1.1 布尔代数基础知识

对于那些对布尔代数感兴趣的人来说,探索其定律、如何简化表达式以及其在数字电子学中的应用,可以为理解数字逻辑和计算机科学的基础知识提供宝贵的见解。

什么是布尔代数

布尔代数是代数的一个特殊分支,主要用于数字电子学。布尔代数是由英国数学家乔治·布尔(George Boole)在1854年发明的。

布尔代数是一种简化数字电子学中逻辑电路(有时也称为逻辑开关电路)的方法。因此,它也被称为“开关代数”。我们可以通过使用数字并遵循一些众所周知的“布尔代数定律”来表示逻辑电路的功能。

我们还可以通过遵循一些定理(称为“布尔代数定理”)来更快地进行电路的计算和逻辑运算。布尔函数是一个表示逻辑电路输入和输出之间关系的函数。

布尔逻辑只允许电路的两种状态,例如“真”和“假”。这两种状态分别用1和0表示,其中1表示“真”,0表示“假”。

在布尔代数中,最重要的是要记住它与常规数学代数及其方法有很大的不同。在学习布尔代数之前,让我们先了解布尔代数的历史以及其发明和发展。

布尔代数的历史

如前所述,布尔代数是由英国数学家乔治·布尔在1854年发明的。他首次在他的著作《思维规律的研究》中提出了布尔代数的概念。

此后,布尔代数被公认为表示数字逻辑电路的完美方式。

在19世纪末,科学家杰文斯(Jevons)、施罗德(Schroder)和亨廷顿(Huntington)将这一概念用于现代化的概念。1936年,M.H.斯通(M.H.Stone)证明布尔代数与集合(数学的一个功能领域)是“同构的”。

在20世纪30年代,科学家克劳德·香农(Claude Shannon)利用布尔代数的概念开发了一种新的代数方法,称为“开关代数”,用于研究开关电路。

现代电子自动化工具的逻辑综合通过使用布尔函数(称为“二进制决策图”)有效地表示。

布尔代数只允许逻辑电路的两种状态,即“真”和“假”或“高”和“低”或“是”和“否”或“开”和“关”或0和1。

布尔表达式

布尔表达式与数学表达式类似。布尔表达式是通过使用逻辑运算符组合逻辑变量形成的。例如:

  • X+YX + Y
  • X+Y+XZX + Y + X Z'
  • X+YX' + Y'

布尔代数的公理

布尔代数系统必须遵循一些基本定律和规则,这些被称为“布尔代数定律”。

1和0的性质

0+X=X1+X=10X=01X=X\begin{aligned} 0 + X &= X \\ 1 + X &= 1 \\ 0 \cdot X &= 0 \\ 1 \cdot X &= X \\ \end{aligned}

恒等律

X+0=XX1=X\begin{aligned} X + 0 &= X \\ X \cdot 1 &= X \\ \end{aligned}

幂等律

X+X=XXX=X\begin{aligned} X + X &= X \\ X \cdot X &= X \\ \end{aligned}

支配律或零化律

X0=0X+1=1\begin{aligned} X \cdot 0 &= 0 \\ X + 1 &= 1 \\ \end{aligned}

互补律

X+X=1XX=0\begin{aligned} X + X' &= 1 \\ X \cdot X' &= 0 \\ \end{aligned}

交换律

X+Y=Y+XXY=YX\begin{aligned} X + Y &= Y + X \\ X \cdot Y &= Y \cdot X \\ \end{aligned}

分配律

X(Y+Z)=XY+XZX+(YZ)=(X+Y)(X+Z)\begin{aligned} X \cdot (Y + Z) &= X \cdot Y + X \cdot Z \\ X + (Y \cdot Z) &= (X + Y) \cdot (X + Z) \\ \end{aligned}

结合律

X+(Y+Z)=(X+Y)+Z(OR结合律)X(YZ)=(XY)Z(AND结合律)\begin{aligned} X + (Y + Z) &= (X + Y) + Z \quad (\text{OR结合律}) \\ X \cdot (Y \cdot Z) &= (X \cdot Y) \cdot Z \quad (\text{AND结合律}) \\ \end{aligned}

吸收律

X+XY=X(OR吸收律)X(X+Y)=X(AND吸收律)\begin{aligned} X + X \cdot Y &= X \quad (\text{OR吸收律}) \\ X \cdot (X + Y) &= X \quad (\text{AND吸收律}) \\ \end{aligned}

冗余律

X+XY=X+YX(X+Y)=XY\begin{aligned} X + X' \cdot Y &= X + Y \\ X \cdot (X' + Y) &= X \cdot Y \\ \end{aligned}

组合律

XY+XY=X(X+Y)(X+Y)=X\begin{aligned} X \cdot Y + X \cdot Y' &= X \\ (X + Y) \cdot (X + Y') &= X \\ \end{aligned}

对合律

(X)=X(X')' = X

共识律

XY+XZ+YZ=XY+XZ(X+Y)(X+Z)(Y+Z)=(X+Y)(X+Z)\begin{aligned} X \cdot Y + X' \cdot Z + Y \cdot Z &= X \cdot Y + X' \cdot Z \\ (X + Y) \cdot (X' + Z) \cdot (Y + Z) &= (X + Y) \cdot (X' + Z) \\ \end{aligned}
布尔表达式描述与等效开关电路
布尔表达式描述等效开关电路布尔定律
X+1=1X + 1 = 1X与闭合并联="CLOSED"alt text零化律
X+0=XX + 0 = XX与开关闭联="X"alt text恒等律
X1=XX \cdot 1 = XX与闭合串联="X"alt text恒等律
X0=0X \cdot 0 = 0X与开关串联="OPEN"alt text零化律
X+X=XX + X = XX与X并联="X"alt text幂等律
XX=XX \cdot X = XX与X串联="X"alt text幂等律
NOT X=X\text{NOT } X' = X双重否定="X"双重否定
X+X=1X + X' = 1X与非X并联="CLOSED"alt text互补律
XX=0X \cdot X' = 0X与非X串联="OPEN"alt text互补律
X+Y=Y+XX + Y = Y + XX与Y并联=Y与X并联alt text交换律
XY=YXX \cdot Y = Y \cdot XX与Y串联=Y与X串联alt text交换律
(X+Y)=XY(X + Y)' = X' \cdot Y'取反并将OR替换为AND德摩根定理
(XY)=X+Y(X \cdot Y)' = X' + Y'取反并将AND替换为OR德摩根定理

布尔逻辑运算

在普通数学中,我们使用数学运算符(如 +、-、*、/)来表示代数变量之间的数学运算。同样,在布尔代数中,我们使用逻辑运算符(如AND、OR、NOT)来表示布尔运算。

基本的布尔算术运算有3种,分别是AND运算、OR运算和NOT运算。布尔运算始终用大写字母表示。

用小写字母表示运算是错误的。接下来我们讨论布尔算术运算。

补码(NOT函数)

补码表示“反转或逆或相反值”。布尔代数支持补码定律。例如,如果变量为1,则其补码为0。

同样,如果变量为0,则其补码为1。补码变量用变量上的“横线”表示。

补码运算也称为NOT运算。NOT门执行布尔补码运算。

如果 X=1X = 1,则 X=0X' = 0
如果 X=0X = 0,则 X=1X' = 1

补码输出 XX' 可以读作“X-bar”或“X-not”。我们也可以用“撇号”符号(')表示补码变量,如 XX'

NOT门的逻辑符号如下所示。

alt text

加法(OR函数)

OR运算表示二进制数的布尔加法。它产生两个二进制数的和,例如:

0+0=00+1=11+0=11+1=1\begin{aligned} 0 + 0 &= 0 \\ 0 + 1 &= 1 \\ 1 + 0 &= 1 \\ 1 + 1 &= 1 \\ \end{aligned}

布尔OR运算可以通过OR门和平行开关触点来解释。

对于 0+0=00 + 0 = 0

alt text

对于 0+1=10 + 1 = 1

alt text

对于 1+0=11 + 0 = 1

alt text
alt text

对于 1+1=11 + 1 = 1

alt text

在布尔代数中,重要的是要记住没有直接的机制来添加负数。这意味着布尔代数中没有直接的减法。减法实际上是“复合加法”。例如,4 - 2 等同于 4 + (-2)。

乘法(AND函数)

AND运算表示二进制数的布尔乘法。它产生两个二进制数的乘积,例如:

00=001=010=011=1\begin{aligned} 0 \cdot 0 &= 0 \\ 0 \cdot 1 &= 0 \\ 1 \cdot 0 &= 0 \\ 1 \cdot 1 &= 1 \\ \end{aligned}

布尔AND运算可以通过AND门和串联开关触点来解释。

对于 00=00 \cdot 0 = 0

alt text

对于 01=00 \cdot 1 = 0

alt text

对于 10=01 \cdot 0 = 0

alt text

对于 11=11 \cdot 1 = 1

alt text

在布尔代数中,重要的是要记住没有直接的机制来进行两个数的除法。除法实际上是“复合乘法”。

布尔函数的简化
通过使用布尔定理和布尔定律,我们可以简化布尔表达式,从而减少实现所需的逻辑门数量。我们可以使用两种方法来简化布尔函数:

  • 代数方法:使用恒等式(布尔定律)。
  • 图形方法:使用卡诺图(Karnaugh Map)方法。

卡诺图方法比使用恒等式简化函数要容易得多。如果变量的数量为 nn,那么卡诺图由 2n2^n 个单元格组成,并且任何两行或两列的相邻单元格都不会有相同的值。