2.3 逻辑函数表达式的形式与变换
任意一个逻辑函数对应一个唯一的真值表,但是其逻辑表达式却不是唯一的。本节将从理论分析的角度介绍逻辑函数表达式的基本形式、标准形式及其相互转换,作为后面逻辑函数化简的基础。
2.3.1 逻辑函数表达式的基本形式
对于同一个逻辑函数表达式可以有多种形式,如与或式、或与式、与非式、或非式、与或非式,其中与或表达式(积之和)和或与表达式(和之积)是逻辑函数表达式的两种基本形式。
1.与或表达式
一个逻辑函数表达式中包含若干个“与项”,每个“与项”中可有一个或多个以原变量或反变量形式出现的字母,所有这些“与项”的“或”就构成了该逻辑函数的与或表达式。而“与”运算对应的是“逻辑乘”运算,“与项”就对应了“乘积项”,“或”运算对应的是“逻辑加”运算,因此与或表达式又被称为“积之和”。
例如,逻辑函数由两个“与项”AB和组成,这两个“与项”又通过“或”运算形成了该逻辑函数表达式。
2.或与表达式
一个逻辑函数表达式中包含若干个“或项”,每个“或项”中可有一个或多个以原变量或反变量形式出现的字母,所有这些“或项”的“与”就构成了该逻辑函数的或与表达式。而“或”运算对应的是“逻辑加”运算,“或项”就对应了“和项”,“与”运算对应的是“逻辑乘”运算,因此或与表达式又被称为“和之积”。
例如,逻辑函数由两个“或项”A+B和B+组成,这两个“或项”又通过“与”运算形成了该逻辑函数表达式。
逻辑函数还可以表示成其他形式,例如既不是与或表达式,也不是或与表达式,但是所有的逻辑函数都可以转换成与或表达式或转换成或与表达式。
2.3.2 逻辑函数表达式的标准形式
通过前面的介绍可以看出,一个逻辑函数的真值表是唯一的,但是它的逻辑表达式不唯一,那么逻辑函数是否存在一个唯一的标准形式呢?答案是肯定的。逻辑函数表达式有两种标准形式:标准的与或表达式(最小项之和)和标准的或与表达式(最大项之积)。下面先介绍最小项和最大项的概念和性质。
1.最小项
对于一个具有n个变量的函数的与项,它包含全部n个变量,其中每个变量都以原变量或者反变量的形式出现且仅出现一次,这样的与项称为最小项。任何一个函数都可以用最小项之和的形式来表示,这种函数表达式称为标准的与或表达式(最小项之和)。
例如,一个3变量的逻辑函数,其变量按A、B、C顺序排列,由3个最小项组成,这个函数表达式就是标准的与或表达式。
由最小项的定义可知,n个变量的函数最多可以组成2n个最小项。3个变量最多可以组成23=8个最小项:和ABC,其他不同的变量组合,例如AB、等都不满足最小项的条件,所以均不是最小项。
为了描述和书写方便,通常用mi表示最小项。按照最小项中的原变量记为1,反变量记为0,且当变量顺序确定后,1和0按顺序排列成一个二进制数,而与这个二进制数相对应的十进制数就是最小项的下标i,表2-21列出了3变量函数的全部的最小项。
表2-21 3变量函数中的最小项和最大项
因此,逻辑函数,若借用数学中常用的符号“∑”表示累计的逻辑加运算,该函数也可以写成如下形式:F(A,B,C)=∑m(2,6,7),其中符号“∑”表示各项的或运算,后面括号内的数字表示函数的各最小项。等式左边括号内的字母列出所有的变量和它的排列顺序。变量的顺序是很重要的,一旦确定后,就不能任意改变,否则会造成表达式错误。
由表2-21可以看出最小项有以下几个性质。
1)对于任意一个最小项mi,只有一组变量的取值才能使其值为1。
例如,最小项,只有当ABC=100时,m4的值才为1,而对于ABC的其他取值,m4均为0。
2)任意两个不同的最小项之积恒为0,即mi·mj≡0,i≠j。
例如,对于3变量A、B、C的两个最小项m0和m4,则=0。
3)n个变量的全部最小项之和为1,即。
例如,对于3变量A、B、C,其所有的最小项之和为
4)n个变量的任何一个最小项有n个相邻最小项。
所谓相邻最小项,是指两个最小项中仅有一个变量不同,且该变量为同一变量的原变量和反变量。因此两个相邻最小项相加以后一定能合并成一项,并消去这一对以原变量和反变量形式出现的因子。例如,3变量A、B、C组成的最小项m0和m1为相邻最小项,m0+m1=。
2.最大项
对于一个具有n个变量的函数的或项,它包含全部n个变量,其中每个变量都以原变量或者反变量的形式出现且仅出现一次,这样的或项称为最大项。任何一个函数都可以用最大项之积的形式来表示,这种函数表达式称为标准的或与表达式(最大项之积)。
例如,一个3变量的逻辑函数,其变量按A、B、C顺序排列,由3个最大项组成,这个函数表达式就是标准的或与表达式。
由最大项的定义可知,n个变量的函数最多可以组成2n个最大项。3个变量最多可以组成23=8个最大项:A+B+C、和,其他不同的变量组合,例如A+B、等都不满足最大项的条件,所以均不是最大项。
为了描述和书写方便,通常用Mi表示最大项。按照最大项中的原变量记为0,反变量记为1,且当变量顺序确定后,1和0按顺序排列成一个二进制数,而与这个二进制数相对应的十进制数就是最大项的下标i,表2-21列出了3变量函数的全部的最大项。
因此,逻辑函数,若借用数学中常用的符号“∏”表示累计的逻辑加运算,该函数也可以简写成如下形式:F(A,B,C)=∏M(0,1,5),其中符号“∏”表示各项的与运算,后面括号内的数字表示函数的各最大项。等式左边括号内的字母列出所有的变量和它的排列顺序。变量的顺序是很重要的,一旦确定后,就不能任意改变,否则会造成表达式错误。
由表2-21可以看出最大项有以下几个性质。
1)对于任意一个最大项Mi,只有一组变量的取值才能使其值为0。
例如,最大项,只有当ABC=011时,M3的值才为0,而对于ABC的其他取值,M3均为1。
2)任意两个不同的最大项之和恒为1,即Mi+Mj≡1,i≠j。
例如,对于3变量A、B、C的两个最大项M0和M3,则M0+M3=(A+B+C)+(A++)=1。
3)n个变量的全部最大项之积为0,即。
例如,对于两变量A、B,其所有的最大项之和为
4)n个变量的任何一个最大项有n个相邻最大项。
3.最大项和最小项之间的关系
在同一逻辑问题中,下标相同的最小项和最大项之间存在互补关系,即有
或者
例如,对于3变量A、B、C的最小项,则=A+B+C=M0。
2.3.3 逻辑函数表达式的转换
虽然逻辑函数表达式的形式多种多样,但是各种表达式形式是可以转换的,任何一个逻辑函数不管是什么形式,都可以将其转换成为标准的与或表达式及标准的或与表达式的形式。求一个函数表达式的标准形式有两种方法:代数转换法和真值表转换法。
1.代数转换法
代数转换法是利用逻辑代数的公理、定律和规则对逻辑函数表达式的形式进行转换得到逻辑函数的标准形式。
用代数转换法求一个逻辑函数的标准的与或表达式一般分两步。
第一步,将逻辑函数表达式转换成一般的与或表达式的形式。
第二步,反复使用形如的表达式,将表达式中所有的非最小项的与项扩展成最小项。
【例2-8】求逻辑函数的标准的与或表达式形式。
解:第一步,将逻辑函数表达式转换为一般的与或表达式,即
第二步,把所有的与项扩展成最小项,若某与项中缺少函数变量B,则用(B+)与这一项相与,再用分配律将其拆成两项。即
类似地,用代数转换法求一个逻辑函数的标准的或与表达式也分两步。
第一步,将逻辑函数表达式转换成一般的或与表达式的形式。
第二步,反复使用形如A=(A+B)(A+)的表达式,将表达式中所有的非最大项的或项扩展成最大项。
【例2-9】求逻辑函数的标准的或与表达式形式。
解:第一步,将逻辑函数表达式转换为一般的或与表达式,即
第二步,把所有的或项扩展成最大项。即
2.真值表转换法
逻辑函数如果用真值表表示,那么真值表的每一行变量组合就对应了一个最小项。如果对应该行的函数值为1,则函数的标准与或表达式中应该包含对应该行的最小项;如果对应该行的函数值为0,则函数的标准与或表达式中不包含对应该行的最小项。因此,求一个逻辑函数的标准与或表达式时,可以列出该函数的真值表,然后根据真值表写出逻辑函数的标准与或表达式。
【例2-10】求逻辑函数的标准的与或表达式形式。
解:首先,列出逻辑函数F的真值表如表2-22所示。
表2-22 逻辑函数F(A,B,C)=的真值表
由表2-22的真值表可知,逻辑函数F的函数值为1的行有第3、5、6、7行,所对应的最小项为m2、m4、m5、m6,则逻辑函数的标准与或表达式为
F(A,B,C)=∑m(2,4,5,6)
类似地,逻辑函数真值表的每一行变量组合也对应了一个最大项。如果对应该行的函数值为0,则函数的标准或与表达式中应该包含对应该行的最大项;如果对应该行的函数值为1,则函数的标准或与表达式中不包含对应该行的最大项。因此,求一个逻辑函数的标准或与表达式时,可以列出该函数的真值表,然后根据真值表写出逻辑函数的标准或与表达式。
【例2-11】求逻辑函数F(A,B,C)=的标准的或与表达式形式。
解:首先,列出逻辑函数F的真值表如表2-23所示。
表2-23 逻辑函数F(A,B,C)=的真值表
由表2-23的真值表可知,逻辑函数F的函数值为0的行有第1、3、6、7、8行,所对应的最小项为M0、M2、M5、M6、M7,则逻辑函数的标准或与表达式为
F(A,B,C)=∏M(0,2,5,6,7)