考研数电·零基础讲义 · 第 03 讲|逻辑函数的表示方法
学完这一讲,你能在真值表、逻辑式、逻辑图、波形图四种"语言"之间自由翻译,会写最小项、最大项和∑m、∏M标准式。预计用时 2~2.5 小时。
本讲地图#
- 同一个逻辑关系,四种写法:真值表、逻辑函数式、逻辑图、波形图,以及它们之间怎么互相转换。
- 最小项mi与最大项Mi:它们是什么、怎么编号、有什么性质,二者是什么关系。
- 两种标准形式:最小项之和(标准与或式,写成∑m)与最大项之积(标准或与式,写成∏M)。
- 华师怎么考:化简题(例如 2026 回忆题第 5 题)的题干直接用∑m(⋯)给出函数;组合电路分析/设计题第一步就是"列真值表、写表达式"。这一讲是后面所有化简和设计题的"读题能力"。
- 教材对应:阎石《数字电子技术基础》第六版 第 2 章 2.5 节(2.5.1~2.5.3)。
前置知识#
- 二进制数和十进制数的互换(见第 01 讲)。
- 与、或、非三种基本运算,与非、或非、异或等复合运算及其门电路符号(见第 02 讲上)。
- 摩根定理等逻辑代数公式(见第 02 讲下)。
一、什么是逻辑函数#
大白话#
想象一个举重比赛:一名主裁判、两名副裁判,每人手里一个按钮。规则是:主裁判必须同意,而且两名副裁判中至少一人同意,这次试举才算成功,成功灯才亮。
灯亮不亮,完全由三个按钮的状态决定。按钮的状态一旦确定,灯的状态也就跟着确定了。这就像数学里的函数y=f(x):给定x,y就唯一确定。只不过这里所有的量都只有两种取值——按下/没按下、亮/不亮,我们用 1 和 0 来记。
正式定义#
以逻辑变量作为输入、以运算结果作为输出,输入取值确定后输出随之唯一确定,这种输入输出关系叫逻辑函数,写作
Y=F(A,B,C,⋯)
逐行拆解#
- A,B,C:输入变量(自变量),每个只能取 0 或 1。
- Y:输出(函数值),也只能取 0 或 1。
- F:表示"某种对应规则"。这个规则可以用四种方式写出来,这就是本讲的主角。
在举重例子里,约定:主裁判按钮为A,两名副裁判按钮为B、C,按下记 1、没按记 0;灯亮Y=1,灯暗Y=0。
⚠️ 易错点:逻辑函数里的 0 和 1 不是"数量",而是"两种状态的代号"。1+1在逻辑或运算里等于 1,不等于 2。
二、四种表示方法#
先看一张总图,记住它们之间的关系:
图 1:逻辑函数四种表示方法及其相互转换的"翻译路线"
1. 真值表#
大白话:把所有可能的输入情况一行一行全部列出来,每一行写上对应的输出。就像一张"查询表",想知道什么情况下灯亮,一查就知道。
怎么列:n个输入变量共有2n种取值组合。习惯上按二进制数从小到大排:3 个变量就从 000 排到 111,共 8 行。
例 1:列出举重裁判电路的真值表。
逐行分析:只有A=1,并且B、C至少一个为 1,灯才亮。
| 行号(十进制) |
A |
B |
C |
Y |
说明 |
| 0 |
0 |
0 |
0 |
0 |
主裁判没同意 |
| 1 |
0 |
0 |
1 |
0 |
主裁判没同意 |
| 2 |
0 |
1 |
0 |
0 |
主裁判没同意 |
| 3 |
0 |
1 |
1 |
0 |
主裁判没同意 |
| 4 |
1 |
0 |
0 |
0 |
副裁判都没同意 |
| 5 |
1 |
0 |
1 |
1 |
主裁判 + 一名副裁判 |
| 6 |
1 |
1 |
0 |
1 |
主裁判 + 一名副裁判 |
| 7 |
1 |
1 |
1 |
1 |
三人都同意 |
真值表的特点:
- 优点:直观、唯一。一个逻辑函数的真值表只有一张(行的顺序不算区别)。
- 缺点:变量一多,行数爆炸。5 个变量就要 32 行,10 个变量要 1024 行。
⚠️ 易错点:行数一定是2n,一行都不能漏。最保险的办法是把行号当二进制数从 0 数到2n−1,最左边的变量是最高位。
2. 逻辑函数式(逻辑式)#
大白话:用与(乘)、或(加)、非(上划线)把规则写成一个"算式"。
例 2:写出举重裁判电路的逻辑式。
把规则翻译成逻辑语言:
- "B和C至少一个同意" → B+C(或运算);
- "而且主裁判A同意" → 再和A做与运算。
所以
Y=A(B+C)
逻辑式的特点:书写简洁,便于用公式推导、化简;但同一个函数可以写出许多不同样子的式子(比如A(B+C)也可以写成AB+AC),所以逻辑式不唯一。
3. 逻辑图#
大白话:把式子里的每个运算换成对应的门电路符号,再按运算顺序连线,就成了"电路草图"。
本讲义采用教材使用的国标方框符号:方框里写"&"是与门,写"≥1"是或门,写"1"是非门;输出端画个小圆圈表示"取反",所以"&"加小圆圈就是与非门。
举重裁判函数Y=A(B+C)的逻辑图见下面图 3(a):先用或门算括号里的B+C,再和A一起送进与门。
逻辑图的特点:最接近实际电路,拿着它就能接线;但看图不能一眼看出功能。
4. 波形图#
大白话:把输入、输出随时间变化的高低电平画出来,像心电图一样。横轴是时间,高电平代表 1,低电平代表 0。用示波器、逻辑分析仪看电路时,看到的就是这种图。
把例 1 真值表的 8 行按时间依次排开,每一行占一小段时间,就得到图 2:
图 2:举重裁判函数Y=A(B+C)的波形图,绿色方块依次扫过每个时间段,每一段就是真值表的一行(动画循环播放)
看图 2 第 6 段(t5∼t6):A高、B低、C高,即ABC=101,此时Y为高,正好对应真值表第 5 行Y=1。
波形图的特点:能表示信号"随时间怎样变化",后面学时序电路(触发器、计数器)时离不开它。
⚠️ 易错点:波形图里各时间段的输入组合不一定按 000、001、010……的顺序出现,可能乱序、也可能重复。读图时一段一段读,不要想当然。
三、四种表示方法之间的转换#
1. 真值表 → 逻辑式(最重要!)#
大白话:输出为 1 的每一行,都是一种"灯亮的情况"。把每种灯亮的情况写成一个"暗号"(乘积项),这个暗号只在这一行成立;再把所有暗号用"或"连起来——只要出现其中任何一种情况,灯就亮。
方法三步走:
- 找出真值表中所有Y=1的行;
- 每一行写一个乘积项:该行取值为 1 的变量写原变量(如A),取值为 0 的写反变量(如A);
- 把这些乘积项相加。
为什么这样写一定对? 以ABC=101这一行为例,写出的乘积项是ABC。只有当A=1、B=0、C=1时,A⋅B⋅C=1⋅1⋅1=1;其他任何输入下,三个因子里至少有一个为 0,乘积就是 0。所以这个乘积项像一把"只开这一行的钥匙"。
例 3:三人表决电路。A、B、C三人投票,同意记 1,多数(两人或以上)同意则通过(Y=1)。列真值表并写出逻辑式。
解:
第一步,列真值表:
| A |
B |
C |
Y |
| 0 |
0 |
0 |
0 |
| 0 |
0 |
1 |
0 |
| 0 |
1 |
0 |
0 |
| 0 |
1 |
1 |
1 |
| 1 |
0 |
0 |
0 |
| 1 |
0 |
1 |
1 |
| 1 |
1 |
0 |
1 |
| 1 |
1 |
1 |
1 |
第二步,Y=1的行有 4 行:011、101、110、111,分别写乘积项:
- 011:A=0写A,B=1写B,C=1写C → ABC;
- 101 → ABC;
- 110 → ABC;
- 111 → ABC。
第三步,相加:
Y=ABC+ABC+ABC+ABC
这个式子还能化简成Y=AB+BC+AC,化简方法是第 04 讲的内容。
2. 逻辑式 → 真值表#
方法:把2n种输入组合逐个代入式子算出Y。初学时建议把每一项单独算一列,最后再"或"起来,不容易错。
例 4:已知Y=AB+BC,求真值表。
解:先分别算AB(要求A=1,B=0)和BC(要求B=1,C=0)两列:
| A |
B |
C |
AB |
BC |
Y |
| 0 |
0 |
0 |
0 |
0 |
0 |
| 0 |
0 |
1 |
0 |
0 |
0 |
| 0 |
1 |
0 |
0 |
1 |
1 |
| 0 |
1 |
1 |
0 |
0 |
0 |
| 1 |
0 |
0 |
1 |
0 |
1 |
| 1 |
0 |
1 |
1 |
0 |
1 |
| 1 |
1 |
0 |
0 |
1 |
1 |
| 1 |
1 |
1 |
0 |
0 |
0 |
所以Y=1的行号是 2、4、5、6。
小技巧(看项填表):AB不管C是几都成立,所以它让"A=1,B=0"的两行(100、101)都为 1。一个乘积项缺几个变量,就管2(缺的个数)行。这个技巧到卡诺图时还会大量使用。
3. 逻辑式 ↔ 逻辑图#
- 式 → 图:按运算优先级(先非、再与、后或;有括号先算括号)把运算符换成门,连起来。
- 图 → 式:从输入端开始,一级一级写出每个门的输出,一直写到最后的输出端。
例 5:写出图 3(b) 所示电路的逻辑式,并说明它和哪个简单式子相等。
图 3:(a) 举重裁判函数的逻辑图;(b) 由三个与非门组成的电路
解:给每个门的输出起名字,逐级写:
- G1是与非门,输入A、B:G1=AB;
- G2是与非门,输入B、C:G2=BC;
- G3是与非门,输入G1、G2:
Y=G1⋅G2=AB⋅BC
用摩根定理XY=X+Y,把最外层的大横线拆开:
Y=AB+BC=AB+BC
(X=X,两次取反等于没取反。)所以这个电路实现的就是Y=AB+BC=B(A+C)。记住这个现象:"与非-与非"两级电路等价于"与-或"两级电路,第 04 讲(下)会专门利用它。
4. 波形图 ↔ 真值表#
- 波形图 → 真值表:把时间轴按输入变化的位置切成小段,每段读出各输入、输出的高低,填成一行。重复出现的组合只写一次。
- 真值表 → 波形图:把每一行依次画成一小段时间的高低电平即可(图 2 就是这样画的)。
例 6:在图 2 中逐段读出输入输出,验证它与例 1 真值表一致。
解:8 段依次读出ABC为 000、001、010、011、100、101、110、111,对应Y为 0、0、0、0、0、1、1、1,和例 1 完全一致。
⚠️ 易错点:从波形图读真值表时,要以任一输入发生跳变的位置为分段点,而不是只看某一个信号。
四、最小项#
前面真值表 → 逻辑式时,每个Y=1的行都写出了一个"包含全部变量、每个变量恰好出现一次"的乘积项。这种项太重要了,专门给它起了名字。
大白话#
最小项就是"只对真值表某一行说'是'的那把钥匙"。3 个变量的真值表有 8 行,就有 8 把钥匙,每把只开一行。之所以叫"最小",是因为它为 1 的情况最少——只有一行。
正式定义#
在n变量逻辑函数中,若乘积项m包含全部n个变量,且每个变量都以原变量或反变量的形式出现且只出现一次,则称m为这组变量的一个最小项。n个变量共有2n个最小项。
编号规则:mi#
使某个最小项等于 1 的那组取值,看成一个二进制数,它的十进制值i就是这个最小项的编号,记作mi。
怎么由最小项求编号:原变量记 1,反变量记 0,按变量顺序拼成二进制数。例如ABC → 101 → 5,所以ABC=m5。
怎么由编号写最小项:把i写成n位二进制,1 写原变量,0 写反变量。
三变量最小项编号表:
| 最小项 |
ABC取值 |
编号 |
| ABC |
000 |
m0 |
| ABC |
001 |
m1 |
| ABC |
010 |
m2 |
| ABC |
011 |
m3 |
| ABC |
100 |
m4 |
| ABC |
101 |
m5 |
| ABC |
110 |
m6 |
| ABC |
111 |
m7 |
4 个变量A,B,C,D时有 16 个最小项m0∼m15。例如m13:13=11012,所以m13=ABCD。
m5读作"m 五"或"最小项 5";A读作"A 非"或"A 反"。
最小项的四条性质#
- 任何一组输入下,有且只有一个最小项等于 1。(每行只有一把钥匙能开。)
- 全部最小项之和恒等于 1。(无论输入是什么,总有一把钥匙开着。)
- 任意两个不同最小项的乘积恒为 0。(两把钥匙不可能同时开。)
- 两个"相邻"的最小项相加,可以合并成一项,消去一个变量。
性质 4 里的"相邻"(逻辑相邻)指两个最小项只有一个变量不同(一个是原变量,另一个是反变量)。例如m6=ABC和m7=ABC只有C不同:
ABC+ABC=AB(C+C)=AB
性质 4 是第 04 讲所有化简方法(尤其卡诺图)的理论根基,一定要记住。
例 7:写出四变量最小项m9,并判断m9和m13、m9和m10是否相邻。
解:9=10012,所以m9=ABCD。13=11012,m13=ABCD,两者只有B不同 → 相邻,m9+m13=ACD。10=10102,m10=ABCD,和m9相比C、D两个变量都不同 → 不相邻。
⚠️ 易错点:编号相差 1 不代表相邻!m1(001)和m2(010)编号只差 1,却有两位不同,不相邻。判断相邻要看二进制,不看十进制。
五、最大项#
大白话#
最小项是"只在一行等于 1";最大项反过来,是"只在一行等于 0"的和项(或运算组成的项)。它在其余所有行都等于 1,为 1 的情况最多,所以叫"最大"。
正式定义#
在n变量逻辑函数中,若和项M包含全部n个变量,且每个变量以原变量或反变量形式出现且只出现一次,则称M为最大项。n个变量也有2n个最大项。
编号规则:Mi(注意和最小项"反着来")#
使最大项等于 0 的那组取值对应的十进制数就是它的编号。
要让一个"或"式等于 0,里面每一项都必须是 0。所以:取值为 0 的变量写原变量,取值为 1 的变量写反变量。
例如ABC=101时要等于 0:A=1写A,B=0写B,C=1写C,得M5=A+B+C。
| 最大项 |
使其为 0 的ABC |
编号 |
| A+B+C |
000 |
M0 |
| A+B+C |
001 |
M1 |
| A+B+C |
010 |
M2 |
| A+B+C |
011 |
M3 |
| A+B+C |
100 |
M4 |
| A+B+C |
101 |
M5 |
| A+B+C |
110 |
M6 |
| A+B+C |
111 |
M7 |
最大项的性质#
- 任何一组输入下,有且只有一个最大项等于 0;
- 全部最大项之积恒为 0;
- 任意两个不同最大项之和恒为 1;
- 只有一个变量不同的两个最大项相乘,可合并为一项,消去那个变量。
最小项和最大项的关系#
同一个编号的最小项和最大项互为反函数:
Mi=mi
验证一下:m5=ABC,用摩根定理m5=A+B+C=M5。✓
⚠️ 易错点:最小项"1 写原变量",最大项"0 写原变量",方向相反。考场上最稳的办法:写完代入那组取值检查——最小项应得 1,最大项应得 0。
六、标准与或式:最小项之和(∑m)#
大白话#
任何逻辑函数都可以写成"若干个最小项相加"的样子。这就是第三节"真值表 → 逻辑式"得到的那种式子。它像函数的"身份证号":同一个函数,最小项之和的写法只有一种。
正式写法#
Y(A,B,C)=m3+m5+m6+m7=∑m(3,5,6,7)
- ∑读作"西格玛",这里表示"把括号里这些编号的最小项加起来";
- 括号前的Y(A,B,C)一定要写清变量和顺序,因为编号依赖变量顺序(A是最高位)。
从一般与或式化成∑m:配项法#
原理:X+X=1,所以给缺少变量X的乘积项乘上(X+X),函数值不变,项就"补齐"了。
例 8:把Y=AB+AC化成最小项之和。
解:
- AB缺C,乘(C+C):AB(C+C)=ABC+ABC,即m7+m6;
- AC缺B,乘(B+B):A(B+B)C=ABC+ABC,即m3+m1。
所以
Y(A,B,C)=∑m(1,3,6,7)
更快的"看项写编号"法:AB要求A=1,B=1,C任意 → 11x → 110、111 → 6、7。AC要求A=0,C=1 → 0x1 → 001、011 → 1、3。
例 9:把四变量函数Y(A,B,C,D)=AB+CD写成∑m形式。
解:
- AB:10xx → 1000、1001、1010、1011 → 8、9、10、11;
- CD:xx11 → 0011、0111、1011、1111 → 3、7、11、15。
编号 11 出现了两次,只写一次(因为X+X=X):
Y(A,B,C,D)=∑m(3,7,8,9,10,11,15)
⚠️ 易错点:重复出现的最小项只写一次;补齐时每缺一个变量,项数就翻倍,缺两个就变 4 项,别漏。
七、标准或与式:最大项之积(∏M)#
大白话#
换个角度:与其说"哪些行灯亮",不如说"哪些行灯不亮"。每个灯不亮的行写一个最大项(只在该行为 0),把它们全部相乘——任何一个不亮的情况出现,乘积就是 0;其他情况乘积为 1。
核心结论:∑m与∏M互补#
一个n变量函数,如果
Y=∑m(某些编号)
那么
Y=∏M(其余编号)
即没出现在∑m里的编号,全部放进∏M。∏读作"派",表示连乘。
推导(了解即可):Y=∑mi(i属于Y为 1 的编号),于是反函数Y=∑mk(k属于其余编号)。两边取反,用摩根定理:Y=∑mk=∏mk=∏Mk。
例 10:把Y=AB+AC写成最大项之积形式。
解:先求∑m。AB:01x → 2、3;AC:1x1 → 5、7。所以Y=∑m(2,3,5,7)。三变量编号 0~7 中剩下 0、1、4、6:
Y(A,B,C)=∏M(0,1,4,6)=(A+B+C)(A+B+C)(A+B+C)(A+B+C)
验算一行:取ABC=100(编号 4):Y=1⋅0+1⋅0=0,而M4=A+B+C=0+0+0=0,乘积为 0,一致。✓
例 11:举重裁判函数Y=A(B+C)的三种写法。
解:由例 1 的真值表,Y=1的行是 5、6、7,所以
Y(A,B,C)=∑m(5,6,7)=∏M(0,1,2,3,4)
而它的反函数Y=∑m(0,1,2,3,4)。
⚠️ 易错点:∏M里放的是Y=0的编号,不是Y=1的;反函数Y的∑m编号恰好等于Y的∏M编号,三者千万别混。
速记卡#
| 项目 |
要点 |
| 四种表示 |
真值表(唯一、直观)、逻辑式(简洁、不唯一)、逻辑图(接近电路)、波形图(看时间变化) |
| 真值表行数 |
n个变量2n行,按二进制 0~2n−1排,左边变量为最高位 |
| 表 → 式 |
找Y=1的行;1 写原变量、0 写反变量组成乘积项;全部相加 |
| 图 → 式 |
从输入到输出逐级写每个门的输出 |
| 最小项mi |
全部变量相乘、各出现一次;只在第i行为 1;1→原变量,0→反变量 |
| 最大项Mi |
全部变量相加、各出现一次;只在第i行为 0;0→原变量,1→反变量 |
| 关系 |
Mi=mi |
| 相邻 |
只有一个变量不同;相邻最小项相加消去该变量(看二进制,不看十进制差 1) |
| 标准与或式 |
Y=∑m(Y=1 的编号),缺变量就乘(X+X)补齐 |
| 标准或与式 |
Y=∏M(Y=0 的编号) |
| 反函数 |
Y=∑m(Y=0 的编号) |
自测练习#
1. 列出Y=A+BC的真值表,并写出∑m形式。
答案与提示
A=1的 4 行(100~111)全为 1;A=0时只有BC=11(011)为 1。所以Y(A,B,C)=∑m(3,4,5,6,7)。
2. 把Y=AB+BC展开成最小项之和。
答案与提示
AB:01x → 2、3;BC:x10 → 2、6。合并去重:Y(A,B,C)=∑m(2,3,6)。
3. 把四变量函数Y=ABD+AC写成∑m形式。
答案与提示
ABD:01x1 → 0101、0111 → 5、7;AC:1x1x → 1010、1011、1110、1111 → 10、11、14、15。Y(A,B,C,D)=∑m(5,7,10,11,14,15)。
4. 已知Y(A,B,C)=∑m(0,2,5),写出它的∏M形式,以及反函数Y的∑m形式。
答案与提示
剩余编号为 1、3、4、6、7。Y=∏M(1,3,4,6,7);Y=∑m(1,3,4,6,7)。
5. 某电路:A、B送入或非门得G1;G1和C再送入另一个或非门得Y。写出Y的表达式并化成最简形式,再写出∑m。
答案与提示
G1=A+B,Y=G1+C=A+B+C。摩根定理:Y=A+B⋅C=(A+B)C。(A+B)C=AC+BC:1x0 → 4、6;x10 → 2、6。Y=∑m(2,4,6)。
6. 写出四变量A,B,C,D的m5和M5,并说明m5+m7能否合并、合并成什么。
答案与提示
5=01012:m5=ABCD,M5=A+B+C+D。m7=ABCD,与m5只有C不同,相邻:m5+m7=ABD。
7.(华师真题风格)某逻辑电路有三个输入A,B,C,当输入中有奇数个 1 时输出Y=1,否则Y=0。(1) 列真值表;(2) 写出Y的∑m和∏M形式;(3) 判断∑m中有没有两个最小项相邻。
答案与提示
(1) 1 的个数为奇数的行:001、010、100、111,Y=1;其余为 0。
(2) Y=∑m(1,2,4,7)=∏M(0,3,5,6)。
(3) 1(001)、2(010)、4(100)、7(111)两两之间都至少有两位不同,没有任何两个相邻,所以这个函数用与或式无法再合并化简。它其实就是Y=A⊕B⊕C,第 11 讲和 2026 回忆题第 6 题(奇校验器)都会用到。
下一讲预告#
学会了把函数写成最小项之和,下一讲(第 04 讲上)我们就来"做减法":用公式把冗长的表达式化成最简与或式。
👉 点击进入下一讲:第04讲(上)|公式化简法
评论
还没有评论。 来写第一条。