布尔表达式与函数



布尔代数是逻辑代数。它处理可以具有两个离散值0(假)和1(真)的变量;以及具有逻辑意义的运算。操纵符号逻辑的最早方法是由乔治·布尔发明的,后来被称为布尔代数。

布尔代数由于其在开关理论、构建基本电子电路和数字计算机设计中的广泛应用,现已成为计算机科学中不可或缺的工具。

布尔函数

布尔函数是一种特殊的数学函数$f: X^n \rightarrow X$,其中$X = \lbrace {0, 1} \rbrace$是布尔域,n是非负整数。它描述了如何从布尔输入推导出布尔输出的方法。

示例 − 令$F(A, B) = A’B’$。这是一个从布尔变量有序对集合到集合$\lbrace {0, 1} \rbrace$的2次函数,其中$F(0, 0) = 1, F(0, 1) = 0, F(1, 0) = 0$和$F(1, 1) = 0$

布尔表达式

布尔表达式总是产生布尔值。布尔表达式由布尔常量(真或假)、布尔变量和逻辑连接词组合而成。每个布尔表达式都代表一个布尔函数。

示例 − $AB’C$是一个布尔表达式。

布尔恒等式

双重补元律

$\sim(\sim A) = A$

补元律

$A + \sim A = 1$ (或运算)

$A . \sim A = 0$ (与运算)

幂等律

$A + A = A$ (或运算)

$A . A = A$ (与运算)

同一律

$A + 0 = A$ (或运算)

$A . 1 = A$ (与运算)

支配律

$A + 1 = 1$ (或运算)

$A . 0 = 0$ (与运算)

交换律

$A + B = B + A$ (或运算)

$A. B = B . A$ (与运算)

结合律

$A + (B + C) = (A + B) + C$ (或运算)

$A. (B . C) = (A . B) . C$ (与运算)

吸收律

$A. (A + B) = A$

$A + (A . B) = A$

简化律

$A . (\sim A + B) = A . B$

$A + (\sim A . B) = A + B$

分配律

$A + (B . C) = (A + B) . (A + C)$

$A . (B + C) = (A . B) + (A . C)$

德摩根律

$\sim (A . B) = \sim A + \sim B$

$\sim (A+ B) = \sim A . \sim B$

规范形式

对于布尔表达式,有两种规范形式:

  • 最小项之和 (SOM) 形式
  • 最大项之积 (POM) 形式

最小项之和 (SOM) 或积之和 (SOP) 形式

最小项是所有变量的乘积,这些变量以其直接形式或补形式出现。任何布尔函数都可以表示为其1-最小项的和,而函数的反函数可以表示为其0-最小项的和。因此,

F(变量列表)= ∑(1-最小项索引列表)

F'(变量列表)= ∑(0-最小项索引列表)

A B C 最小项
0 0 0 x’y’z’ m0
0 0 1 x’y’z m1
0 1 0 x’yz’ m2
0 1 1 x’yz m3
1 0 0 xy’z’ m4
1 0 1 xy’z m5
1 1 0 xyz’ m6
1 1 1 xyz m7

示例

$F(x, y, z) = x' y' z' + x y' z + x y z' + x y z $

或者,$F(x, y, z) = m_0 + m_5 + m_6 + m_7$

因此,

$F(x, y, z) = \sum (0, 5, 6, 7)$

现在我们将找到$F(x, y, z)$的补集

$F' (x, y, z) = x' y z + x' y' z + x' y z' + x y' z'$

或者,$F'(x, y, z) = m_3 + m_1 + m_2 + m_4$

因此,

$F'(x, y, z) = \sum (3, 1, 2, 4) = \sum (1, 2, 3, 4)$

最大项之积 (POM) 或和之积 (POS) 形式

最大项是所有变量的加法,这些变量以其直接形式或补形式出现。任何布尔函数都可以表示为其0-最大项的乘积,而函数的反函数可以表示为其1-最大项的乘积。因此,

F(变量列表)= $\pi$(0-最大项索引列表)。

F'(变量列表)= $\pi$(1-最大项索引列表)。

A B C 最大项
0 0 0 x + y + z M0
0 0 1 x + y + z’ M1
0 1 0 x + y’ + z M2
0 1 1 x + y’ + z’ M3
1 0 0 x’ + y + z M4
1 0 1 x’ + y + z’ M5
1 1 0 x’ + y’ + z M6
1 1 1 x’ + y’ + z’ M7

示例

$F(x, y, z) = (x + y + z) . (x+y+z') . (x+y'+z) . (x'+y+z)$

或者,$F(x, y, z) = M_0 . M_1 . M_2 . M_4$

因此,

$F (x, y, z) = \pi (0, 1, 2, 4)$

$F''(x, y, z) = (x+y'+z') . (x'+y+z') . (x'+y'+z) . (x'+y'+z')$

或者,$F(x, y, z) = M_3 . M_5 . M_6 . M_7$

因此,

$F '(x, y, z) = \pi (3, 5, 6, 7)$

逻辑门

布尔函数是使用逻辑门实现的。以下是逻辑门:

非门

非门将单个比特输入反转为单个比特输出。

A ~A
0 1
1 0

与门

与门是一种逻辑门,只有当所有输入都为高电平时才输出高电平,否则输出低电平。点(.) 用于表示与运算。

A B A.B
0 0 0
0 1 0
1 0 0
1 1 1

或门

或门是一种逻辑门,如果至少一个输入为高电平,则输出高电平。加号(+) 用于表示或运算。

A B A+B
0 0 0
0 1 1
1 0 1
1 1 1

与非门

与非门是一种逻辑门,只有当所有输入都为高电平时才输出低电平,否则输出高电平。

A B ~(A.B)
0 0 1
0 1 1
1 0 1
1 1 0

或非门

或非门是一种逻辑门,只有当两个输入都为低电平时才输出高电平,否则输出低电平。

A B ~(A+B)
0 0 1
0 1 0
1 0 0
1 1 0

异或 (XOR) 门

异或门是一种逻辑门,如果输入不同,则输出高电平,否则输出低电平。

A B A⊕B
0 0 0
0 1 1
1 0 1
1 1 0

异或非 (X-NOR) 门

异或非门是一种逻辑门,如果输入相同,则输出高电平,否则输出低电平。

A B A X-NOR B
0 0 1
0 1 0
1 0 0
1 1 1
广告