教学内容与考核标准

授课教师:

内容:基本知识、逻辑运算、逻辑函数化简(列表法不要求)、逻辑门电路、组合逻辑电路、触发器、时序逻辑电路、中规模逻辑电路

理论 40 学时 + 实验 36 学时

考核方式:雨课堂考勤 + 课程中心作业 + 期末考试

数制

常用数制:十进制 (Decimal)、二进制 (Binary)、十六进制 (Hexadecimal)、八进制 (Octal)

数字的表示法:

(N)R=(KnKn1...K1K0.K1K2...)R=Kn×Rn+Kn1×Rn1+...+K1×R1+K0×R0+K1×R1+K2×R2+...(N)_R = (K_nK_{n-1}...K_{1}K_{0}.K_{-1}K_{-2}...)_R = K_n × R^{n} + K_{n-1} × R^{n-1} + ... + K_{1} × R^{1} + K_{0} × R^{0} + K_{-1} × R^{-1} + K{-2} × R{-2} + ...

第二个等号后面的表示法称为 “按权展开法”。注意十六进制数的按权展开需要将字母换成对应的十进制数

数制转换

按权展开法会将数字转换成十进制的,因此其他进制转十进制非常简单。下面介绍其他进制转换。

Warning

本部分在考试中仅作选择或填空题。选择自己可以熟练掌握的技巧,不需要考虑方法是否学过。

Tip

一些计算器不支持小数的进制转换,你可能需要在线寻找,例如二进制转换BINARY2HEX;或者使用更高级的计算器,如 Qalculate!

1. 十进制转二进制

正规方法:整数除 2 取余;小数乘 2 取整

Tip

除 2 取余,除到商为 0 为止
乘 2 取整,乘到积为 1 或精度的后一位为止。期间,如果整数部分有进位,舍去进位。当得到精度的后一位(如要求 4 位小数,则进行 5 次乘法)时,如果整数部分为 0,则不进位;如果整数部分为 1,则进位。

其他方法:按位展开,逐次递减

image-20250908170136476
Tip

由于其他进制转十进制很容易,因此如果想降低知识点负担,对于其他进制转二进制,只需要先转成十进制,然后再转成二进制即可。

2. 二进制转八进制

整数从右到左、小数从左到右,将数字按三位三位划分(三位二进制数最多表示到 7),不足三位的用 0 补齐。然后分别计算三位数字对应的八进制数,连接起来即可。

(11100101.01)2=(011)2(100)2(101)2.(010)2=(3)8(4)8(5)8.(2)8=(345.2)8(11100101.01)_2 = (011)_2(100)_2(101)_2.(010)_2=(3)_{8}(4)_{8}(5)_{8}.(2)_{8}=(345.2)_8

八转二是逆过程,每一个八进制数用三位二进制数表示即可。

3. 二进制转十六进制

整数从右到左、小数从左到右,将数字按四位四位划分(四位二进制数最多表示到 F,即 15),不足四位的用 0 补齐。然后分别计算四位数字对应的十六进制数,连接起来即可。

(11100101.01)2=(1110)2(0101)2.(0100)2=(E)16(5)16.(8)16=(E5.8)16(11100101.01)_2 = (1110)_2(0101)_2.(0100)_2=(\text{E})_{16}(5)_{16}.(8)_{16} = (\text{E}5.8)_{16}

十六转二是逆过程,每一个十六进制数用四位二进制数表示即可。

有符号数表达

对于有符号数,数字的最高位(最左端)是符号位,用 “0” 表示正数,用 “1” 表示负数。符号位之后的位才表示数值。例如 01010=+101001010 = +1010

Warning

符号位只有一位,如果计算时发现符号位出现进位现象,舍弃进位。

通常将用 “+”、“-” 表示正、负的二进制数称为符号数的真值,而把将符号和数值一起编码表示的二进制数称为机器数或机器码

1. 原码

数值位和无符号数一样,再加上符号位,就得到了原码。整数的符号位加在数值位最高位的左端,小数的符号位在整数部分上。

+1101+1101 的原码是 01101011011101-1101 的原码是 1110111101+0.1011+0.1011 的原码是 0.10110.10110.1011-0.1011 的原码是 1.10111.1011

原码虽然表示简单,但计算较为不便。例如,9+(3)=69+(-3) = 6,但在原码表示中,9+(3)=(01001)2+(10011)2=(11100)2=129+(-3)=(01001)_2+(10011)_2=(11100)_2=-12,很明显是错误的!

2. 反码

相比原码,正数反码不变,而负数反码的数值位按位取反。如 +1101+1101 的反码是 0110101101,而 1101-1101 的反码是 1001010010

反码是解决原码带来的计算问题的一个过渡方案。这句话的意思是:它仍然有问题,比如反码仍然算不对上面的 9+(3)9+(-3)

3. 补码

相比原码,正数补码不变,而负数补码的数值位按位取反后还要加 1。如 1101-1101 的补码是 1(0010+1)=100111(0010+1)=10011

Note

也可以这么看:对于负数,数值位从右到左(即最低位)数直到遇到第一个 1,这些位不变,之后的位取反,即 1101=1(110) 1=10011-1101 = 1 (110)_{\text {反}} 1 = 1001110110=1(101) 10=101010-10110 = 1 (101)_{\text {反}} 10 = 101010

补码解决了原码和反码的计算问题,这次就算对了 9+(3)9+(-3) 。计算机中的运算均采用补码形式。

码制

如果说数制表示数字,那么码制就表示信息。

BCD 码

BCD 码全称二 - 十进制 (Binary Coded Decimal) 码,通过四位二进制数对一位十进制数编码以传递信息。例如,对于十进制的 1212,我们不是直接转换成 11001100,而是对 1122 分别进行 BCD 编码。

Note

由于一位十进制数仅由 0 ~ 9 表示,但四位二进制数可以表示 24=162^4=16 种状态,于是每种 BCD 码仅取出其中 10 种作为有效编码,其余 6 种是无效编码(称为 “冗余码”)。

BCD 码有何好处?首先是转换方便。计算机只需要每四位二进制数按照映射表转换成一位十进制数,然后拼接即可得到完整的十进制数字,这比整体按权展开要容易得多。

其次,由于 BCD 按位编码,所以它可以精确表示十进制小数。如 0.10.1 在一种 BCD 码下表示为 0000.00010000.0001,但如果乘 2 取整就会得到一个无限循环小数 0.000110011001100...0.000110011001100...,计算机无法精确表示一个具有无限位的数,于是会出现精度问题。

本课主要学习 8421 码和余 3 码,2421 码仅作了解

1. 8421 码

8421 码是最常用的一种有权码。8421 码到十进制的转换和普通二进制数相同(按权展开),它们表示出来的 0 ~ 9 也完全相同。注意,1010 ~ 1111 是冗余码。

Tip

8421 码表示的二进制数字和其对应十进制数字字符的 ASCII 码的低四位相同,因此使用 8421 码可以简化 BCD 码与对应 ASCII 码的转换。

8421 码按位编码,如:

(258)10=(0010 0101 1000)8421 码 (258)_{10}=(0010\ 0101\ 1000)_{\text {8421 码}}

(0001 0001 0100 0101)8421=(1145)10(0001\ 0001\ 0100\ 0101)_{\text{8421}}=(1145)_{10}

8421 码之间的计算:如果某一位的和 ≤ 9,且没有产生进位,无需调整;如果某一位的和 > 9,或者产生了进位(虽然和 ≤ 9 但向高位进了一位),则必须进行加 6 调整(即加上 01100110)。和之后的余 3 码相比,8421 码的调整规则就多了一点。

17+18=0001 0111+0001 1000=0010 1111(进位 + 低四位和 > 9, 需要调整)17 + 18 = 0001\ 0111 + 0001\ 1000 = 0010\ 1111\text {(进位 + 低四位和 > 9, 需要调整)}

调整:0010 1111+0000 0110=(0011 0101)8421 码 =35\text {调整:} 0010\ 1111+ 0000\ 0110=(0011\ 0101)_{\text {8421 码}}=35

2. 2421 码

2421 码也是一种有权码,它的权是 2、4、2、1。0101 ~ 1010 是冗余码。

(258)10=(0010 1011 1110)2421 码 (258)_{10}=(0010\ 1011\ 1110)_{\text {2421 码}}

(0001 0001 0100 1011)2421 码 =(1145)2421 码 (0001\ 0001\ 0100\ 1011)_{\text {2421 码}}=(1145)_{\text {2421 码}}

3. 余 3 码

余 3 码是 8421 码加上 0011 形成的一种无权码,得名于其比 8421 码多 3,如 (5)10=(0101)8421 码 +(0011)2=(1000) 余 3 码 (5)_{10} = (0101)_{\text {8421 码}}+(0011)_{2}=(1000)_{\text {余 3 码}}。0000、0001、0010、1101、1110、1111 是冗余码。

余 3 码是一种对 9 的自补代码,可以给运算带来方便。两个余 3 码相加的运算规则是:如果有进位,结果每四位加 3;如果没有进位,结果每四位减 3。注意将结果转换回十进制时使用的是余 3 码。

余 3 码同样按位编码。

(256)10=((0010)8421+(0011)2  (0101)8421+(0011)2  (0110)8421+(0011)2) 余 3 码 =(0101 1000 1001) 余 3 码 (256)_{10}=((0010)_{8421}+(0011)_2\ \ (0101)_{8421}+(0011)_{2}\ \ (0110)_{8421}+(0011)_{2})_{\text {余 3 码}}=(0101\ 1000\ 1001)_{\text {余 3 码}}

(1000 1001 1001 1011) 余 3 码 =(5668)10(1000\ 1001\ 1001\ 1011)_{\text {余 3 码}}=(5668)_{10}

计算:

13+67=0100 0110+1001 1010=1110 0000(进位,需要调整)13 + 67 = 0100\ 0110 + 1001\ 1010 = 1110\ 0000\text {(进位,需要调整)}

调整:1110 0000+0011 0011=(1011 0011) 余 3 码 =80\text {调整:} 1110\ 0000 + 0011\ 0011 = (1011\ 0011)_{\text {余 3 码}} = 80

几种 BCD 码的映射表:

十进制数字 8421 码 2421 码 余 3 码 备注
0 0000 0000 0011
1 0001 0001 0100
2 0010 0010 0101
3 0011 0011 0110
4 0100 0100 0111
5 0101 1011 1000
6 0110 1100 1001
7 0111 1101 1010
8 1000 1110 1011
9 1001 1111 1100
无效码 1010 - 1111 0101 - 1010 0000 - 00101101 - 1111 未使用的编码组合

可靠性编码

用于校验 / 纠错,提高信息传输的可靠性。

格雷码

格雷码的特点:任意两个相邻的数,其格雷码仅有一位不同。可以有效避免多位跳变,提高系统可靠性。

二进制码转格雷码:

设二进制码为 B=Bn1Bn2Bi+1BiB1B0,对应格雷码为 G=Gn1Gn2Gi+1+GiG1G0\text {设二进制码为}\ B = B_{n-1} B_{n-2} … B_{i + 1} B_i … B_1B_0\text {,对应格雷码为} G = G_{n-1} G_{n-2} … G_{i + 1}+G_i … G_1G_0

有:

Gn1=Bn1(最高位相同)G_{n-1} = B_{n-1}\text {(最高位相同)}

Gi=Bi+1Bi(其他位为高位二进制与当前位异或)G_i = B_{i + 1} ⊕ B_i\text {(其他位为高位二进制与当前位异或)}

格雷码转二进制码:

逆向计算。二进制码的最高位(最左边)与格雷码的最高位相同。将产生的每一位二进制码,与下一位相邻的格雷码相加(舍去进位),作为二进制码的下一位。

奇偶校验码

奇偶校验码仅校验,不纠错(因为无法判断出错位置),只能检测奇数个 bit 错误。

  • 奇校验

    如果给定一组数据位中 1 的个数是奇数,补一个 bit(0 或 1)在最右方,使得总的 1 的个数是奇数。例:0000001, 补一个 bit 为 0, 得到 00000010

  • 偶校验

    如果一组给定数据位中 1 的个数是奇数,补一个 bit(0 或 1)在最右方,使得总的 1 的个数是偶数。例:0000001, 补一个 bit 为 1, 得到 00000011

reference: 奇偶校验位

逻辑代数基础

逻辑代数是逻辑电路的数学表达。

代数系统概述

逻辑变量以大写字母表示。逻辑变量的取值只有 “0” 和 “1” 两种可能

三大基本逻辑运算:

  • 与 (AND)
    • F=ABF = A\cdot B
    • 对应逻辑电路中的 “或门”
  • 或 (OR)
    • F=A+BF = A+B
    • 对应逻辑电路中的 “与门”
  • 非 (NOT)
    • F=AF = \overline{A}
    • 对应逻辑电路中的 “非门”/“反相器”

在一个表达式中,如果既有与运算又有或运算,则按先与后或的规则进行运算。

Note

“与” 也称 “逻辑乘”,只要有一个变量为假 (0),那么运算结果也为假,和一般乘法相同
“或” 也称 “逻辑加”,只要有一个变量为真 (1),那么运算结果也为真,和一般加法相似

五大公理:

  1. 交换律

  2. 结合律

  3. 分配律

  • A+(BC)=(A+B)(A+C)A+(B\cdot C) = (A+B)\cdot (A+C)
  • A(B+C)=AB+ACA\cdot (B+C) = A\cdot B + A\cdot C
  1. 0-1 律
  • A+0=AA + 0=AA0=0A\cdot 0 = 0
  • A+1=1A + 1 = 1A1=AA\cdot 1 = A
  1. 互补律
  • A+A=1A + \overline{A} = 1AA=0A\cdot \overline{A}=0

三种基本逻辑运算可以描述各种逻辑关系,对这些关系使用数学描述,即可得到逻辑函数。

F=f(A1,A2,...,An)F=f{(A_1,A_2,...,A_n)}

逻辑函数的取值同样是 “0” 或 “1”。如果对应于逻辑变量 A1,A2,...,AnA_1,A_2,...,A_n 的任意一组取值,逻辑函数 F1F_1F2F_2 的取值均相等,则 F1=F2F_1 = F_2

表示逻辑函数的方法,除了上面给出的逻辑表达式之外,还有真值表和卡诺图两种。

基本定理

由五大公理可推出八大定理:

  1. 0-1 律

  2. 重叠律(你,莫的选择)

  • A+A=AA+A=AAA=AA\cdot A =A
  1. 吸收律
  • A+AB=AA+A\cdot B=AA(A+B)=AA\cdot (A+B)=A
  1. 消除律
  • A+AB=A+BA+\overline{A}\cdot B = A + BA(A+B)=ABA\cdot (\overline{A}+B)=A\cdot B
  1. 对合律(双重否定表肯定)
  • A=A\overline{\overline{A}}=A
  1. 互补律
  • A+B=AB\overline{A+B}=\overline{A}\cdot \overline{B}AB=A+B\overline{A\cdot B} = \overline{A} + \overline{B}
  1. 并项律
  • AB+AB=AA\cdot B+A\cdot \overline{B} = A(A+B)(A+B)=A(A+B)\cdot (A+\overline{B})=A
  1. 包含律
  • AB+AC+BC=AB+ACA\cdot B+\overline{A}\cdot C+B\cdot C=A\cdot B+\overline{A}\cdot C
  • (A+B)(A+C)(B+C)=(A+B)(A+C)(A+B)\cdot (\overline{A}+C)\cdot (B+C)=(A+B)\cdot (\overline{A}+C)

重要规则

三个重要规则:

  1. 代入规则

A(B+C)=AB+ACA(B+C)=AB+AC,令 C=C+DC=C+D,则 A[B+(C+D)]=AB+A(C+D)A[B+(C+D)]=AB+A(C+D)

  1. 反演规则(摩根定理)

一切运算 “反过来”:“\cdot” 和 “++” 互换,“0” 和 “1” 互换,原反变量互换,保持运算顺序不变。

F=A+B(C+DE)F=A[B+C(D+E)]F=\overline{A}+\overline{B}\cdot (C+\overline{D}E) \rightarrow \overline{F}=A\cdot [B+\overline{C}\cdot (D+\overline{E})]

可以求反函数。

  1. 对偶规则

与反演规则相比,对偶规则不需要原反变量的互换。得到的是函数的对偶式 FF'

F=A+B(C+DE)F=A[B+C(D+E)]F=\overline{A}+\overline{B}\cdot (C+\overline{D}E) \rightarrow F'=\overline{A}\cdot [\overline{B}+C\cdot (\overline{D}+E)]

如果 F=FF=F',则 FF 为自对偶函数。

如果 F=GF=G,则 F=GF'=G'

复合逻辑

  1. 与非逻辑

F=ABC...F=\overline{A\cdot B\cdot C \cdot ...}

  1. 或非逻辑

F=A+B+C+...F=\overline{A+B+C+...}

  1. 与或非逻辑

F=AB+CD+...F=\overline{AB+CD+...}

  1. 异或逻辑

F=AB=AB+ABF=A⊕B=\overline{A}B+A\overline{B}

  1. 同或逻辑

F=AB=AB+ABF=A⊙B=\overline{A}\overline{B}+AB

同或和异或既互为相反,又互为对偶。由于同或可以由异或取反得到,因此实践中通常用异或实现同或。

逻辑函数表达式

基本形式

  • 与 - 或表达式(积之和)

  • 或 - 与表达式(和之积)

最小项和最大项

  • 最小项

包含所有 nn 个变量的与项,共有 2n2^n 种组合。每个变量以原变量或反变量形式出现且仅出现一次,在 2n2^n 种变量组合中,每个最小项仅在一种组合下为 1,其余均为 0

相同变量构成的不同最小项的与和必定为 0;全部最小项的或和必定为 1。

  • 最大项

包含所有 nn 个变量的或项,也有 2n2^n 种组合。每个变量以原变量或反变量形式出现且仅出现一次,在 2n2^n 种变量组合中,每个最大项仅在一种组合下为 0,其余均为 1

相同变量构成的不同最小项的或和必定为 1。

相同变量构成的最大项 MiM_i 和最小项 mim_i 互补,即 Mi=miM_i=\overline{m_i}

标准形式

mim_iMiM_i 替代变量。

  • 标准与 - 或(最小项)

  • 标准或 - 与(最大项)

转化为标准形式

  • 代数转换法

  • 真值表转换法

表达式化简

目标:项数最少,每一项中的变量也最少的表达形式

  1. 代数化简法

  2. 卡诺图化简法

卡诺图是一种图形化的逻辑函数化简方法,通过格雷码排列的方式将逻辑相邻最小项放在物理相邻的位置。由于当变量大于 5 时难以构造,故一般只用到 4 变量

集成门电路(了解)

电平

逻辑值 0 和 1 在数字电路中体现就是电平。电平分为高电平和低电平。一般来讲,高电平对应 “1”,低电平对应 “0”。

正逻辑和负逻辑

正逻辑:高电平对应 “1”,低电平对应 “0”,现代的大部分接口使用正逻辑。
负逻辑:高电平对应 “0”,低电平对应 “1”,仅用于早期或特殊接口。

高低电平之间的差值越大,逻辑值 “1” 和 “0” 的在物理层面的区别越明显,电路工作越可靠。

电路不会一直稳定。为了应对电压波动,实际的高低电平判定有范围,如理想的低电平是 0V,实际可能 0.5V 也可以判定为低电平。

组合逻辑电路

输出仅取决于该时刻的输入,而与过去的输入值无关,没有反馈回路。

分析组合电路的步骤

  1. 确定电路的输入和输出
  • 识别电路的输入变量(通常用 A、B、C 等表示)
  • 确定电路的输出变量(通常用 Y、F 等表示)
  1. 从输入到输出逐级分析
  • 从输入端开始,逐级向输出端分析
  • 写出每个门电路的逻辑表达式
  • 将各级表达式代入,得到最终的逻辑函数
  1. 化简逻辑函数
  • 使用布尔代数定律化简表达式
  • 或使用卡诺图进行化简
  1. 列出真值表
  • 根据化简后的逻辑函数
  • 列出所有输入组合对应的输出值
  1. 描述电路功能
  • 根据真值表分析电路实现的逻辑功能
  • 确定电路的应用场合

©2025-Present Watermelonabc | 萌 ICP 备 20251229 号

Powered by Hexo & Stellar 1.33.1 & Vercel & HUAWEI Cloud
您的访问数据将由 Vercel 和自托管的 Umami 进行隐私优先分析,以优化未来的访问体验

本博客总访问量:capoo-2

| 开往-友链接力 | 异次元之旅

中文独立博客列表 | 博客录 随机博客

AI 参与指数(IIIA)2 级

猫猫🐱 发表了 61 篇文章 · 总计 255.8k 字