跳到主要内容

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+XZ′X + Y + X Z'
  • X′+Y′X' + Y'

布尔代数的公理​

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

1和0的性质

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

恒等律

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

幂等律

X+X=XX⋅X=X\begin{aligned} X + X &= X \\ X \cdot X &= X \\ \end{aligned}

支配律或零化律

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

互补律

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

交换律

X+Y=Y+XX⋅Y=Y⋅X\begin{aligned} X + Y &= Y + X \\ X \cdot Y &= Y \cdot X \\ \end{aligned}

分配律

X⋅(Y+Z)=X⋅Y+X⋅ZX+(Y⋅Z)=(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⋅(Y⋅Z)=(X⋅Y)⋅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+X⋅Y=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+X′⋅Y=X+YX⋅(X′+Y)=X⋅Y\begin{aligned} X + X' \cdot Y &= X + Y \\ X \cdot (X' + Y) &= X \cdot Y \\ \end{aligned}

组合律

X⋅Y+X⋅Y′=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

共识律

X⋅Y+X′⋅Z+Y⋅Z=X⋅Y+X′⋅Z(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恒等律
X⋅1=XX \cdot 1 = XX与闭合串联="X"alt text恒等律
X⋅0=0X \cdot 0 = 0X与开关串联="OPEN"alt text零化律
X+X=XX + X = XX与X并联="X"alt text幂等律
X⋅X=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互补律
X⋅X′=0X \cdot X' = 0X与非X串联="OPEN"alt text互补律
X+Y=Y+XX + Y = Y + XX与Y并联=Y与X并联alt text交换律
X⋅Y=Y⋅XX \cdot Y = Y \cdot XX与Y串联=Y与X串联alt text交换律
(X+Y)′=X′⋅Y′(X + Y)' = X' \cdot Y'取反并将OR替换为AND德摩根定理
(X⋅Y)′=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。

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

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运算表示二进制数的布尔乘法。它产生两个二进制数的乘积,例如:

0⋅0=00⋅1=01⋅0=01⋅1=1\begin{aligned} 0 \cdot 0 &= 0 \\ 0 \cdot 1 &= 0 \\ 1 \cdot 0 &= 0 \\ 1 \cdot 1 &= 1 \\ \end{aligned}

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

对于 0⋅0=00 \cdot 0 = 0:

alt text

对于 0⋅1=00 \cdot 1 = 0:

alt text

对于 1⋅0=01 \cdot 0 = 0:

alt text

对于 1⋅1=11 \cdot 1 = 1:

alt text

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

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

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

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