Skip to content

Chaper 2 Part 1: Boolean Algebra 布尔代数 ​

(共 42 页)

逻辑门 ​

基本逻辑门,就是 AND,OR,NOT 这仨啦。

观察真值表容易发现,AND 有逻辑乘法的作用,而 OR 有逻辑乘法的作用。NOT,有时候被称作 Inverter。

而 AND 与 NOT 组合,产生了 NAND。OR 与 NOT 组合,产生了 NOR。

EX-OR,全称 exclusive-or,顾名思义,不包含全是 1 的 OR,也就是异或。符号是 。。

与异或对应的是 EX-NOR,同或,说白了就是异或再接上一个 NOT。

下面表格摘自 EE103 笔记:

常见逻辑门 ​

gate name中文名IEEE 符号布尔表达式计算方法备注
NOT非输出反码也叫反相器 Inverter
AND与当且仅当 所有 输入都是 HIGH 才输出 HIGH 否则为 LOW执行逻辑乘法
OR或当且仅当 所有 输入都是 LOW 才输出 LOW 否则为 HIGH执行逻辑加法
NAND与非当且仅当 所有 输入都是 HIGH 才输出 LOW 否则为 HIGH
NOR或非当且仅当 所有 输入都是 LOW 才输出 HIGH 否则为 LOW
XOR异或当且仅当 HIGH 的个数是奇数,输出是 HIGH 否则为 LOW可以看作二元加法器
XNOR同或当且仅当 HIGH 的个数是奇数,输出是 LOW 否则为 HIGH

布尔函数 ​

跟数学上的函数基本上一样。比如 就是一个布尔函数。

对偶函数(dual) ​

函数的对偶函数(dual),就是把所有的 AND 换成 OR,OR 换成 AND;1 换成 0,0 换成 1;保持原先的变量及其运算顺序(加上适当的括号)。比如上面 的对偶函数就是 。

所有布尔表达式都具有一个与之对应的对偶式 dual。

补函数(complement) ​

布尔代数领域的补函数就是说,对于 种变量输入组合,函数值永远与原函数相反。

把对偶函数的每个变量 invert 一下,就可以构造出一个补函数。然而课件里面没说是怎么证明的,就记住这个结论好了。

比如,上面函数 的补函数就是 。

反函数(inverse) ​

把函数 的真值表列出来, 本身相当于把所有 的项求 SOP。

而 相当于把所有 的项求 SOP。

这里的反函数 inverse 和补函数 complement 是 同一个概念,只是求出来的途径、表达形式不一样。

自足算子 Functionally Completeness ​

一个运算的集合被称作 functionally complete(或者 universal),当且仅当这几个运算可以表达任何的布尔函数。

例如,{AND, NOT} 就是一个自组算子,因为 NOT 和 AND 可以组合成 NAND,而 NAND 可以表示任意门。同理,{OR, NOT} 也是自足算子(complete set)。

再进一步,NAND 本身构成的集合 {NAND} 就是一个自足算子。

用 NAND(与非)表示其他逻辑运算(CS171) ​

表示 NOT ​

pic

NOT(A) = A NAND A

表示 AND ​


pic

A AND B = ( A NAND B ) NAND ( A NAND B )

表示 OR ​

pic

A OR B = ( A NAND A ) NAND ( B NAND B )

表示 NOR ​

pic

A NOR B = [ ( A NAND A ) NAND ( B NAND B ) ] NAND [ ( A NAND A ) NAND ( B NAND B ) ]

表示 XOR ​

A XOR B = [ A NAND ( A NAND B ) ] NAND [ B NAND ( A NAND B ) ]

POS 形式的布尔函数 ​

有两种方法,一种是利用对偶函数和反函数,另一种是利用最大项

利用对偶函数和反函数 ​

  1. 列出真值表
  2. 给所有 的求 SOP,即求出反函数(可以用卡诺图)
  3. 给反函数求对偶函数
  4. 再把对偶函数的每个变量 invert 一下,就得到原函数的 POS 形式

即:原函数经过对偶再翻转变量,得到反函数;反函数经过对偶再翻转变量,同样可以得到原函数。

利用最大项 ​

所谓 最大项 maxterm,就是一堆变量直接加起来。相对应的 最小项 minterm,就是一堆变量直接乘起来。变量和运算次数相同的时候,最大项写起来长,最小项写起来短。

  1. 列出真值表
  2. 找出所有 的项,把构成这个项的所有变量 OR 起来。注意,变量值取 0 的不变,取 1 的翻转。
  3. 把刚才求出来的所有 S 给乘起来,就得到了 POS

如, 这个函数:

image-20220927121316383
  • 第一个 的行,变量取值是 ,因此对应
  • 第二个 的行,变量取值是 ,因此对应
  • 以此类推,最终得到:

布尔运算的基本性质与运算律 ​

AND ​

OR ​

NOT ​

运算优先级(Operator Precedence) ​

概括来说,就是 NOT > AND > OR。

因为 NOT 的运算与符号后面的 atom 直接融为一体,而 AND 的运算优先级总是高于 OR 的。

布尔运算的运算律 ​

交换律 Commutation ​

结合律 Association ​

分配律 Distribution ​

吸收律 Absorption ​

理解:

一致律 Consensus ​

推导:

德摩根律 ​

CS172 笔记摘录 ​

运算律示例 1示例 2
交换律
结合律
分配律
德摩根
吸收律
条件句

布尔表达式化简示例 ​