首页电子与通信技术电子技术数字电子技术 01 第一章 Basic LogicBoolean Algebra-1.pptx

01 第一章 Basic LogicBoolean Algebra-1.pptx

页数:117页文件大小:4.16 MB来源: 数字电子技术ppt课件

本课件为数字电子技术课程 1-1 分册,沿数字与模拟量、数制与编码、算术运算三条主线展开,厘清数字量离散特征、常用进制互换方法与有符号数的补码表示,为后续逻辑代数与门电路学习打下基础。

数字电子技术基础课程封面,标示英文课程名 Fundamentals of Digital Electronic Techniques 与 1-1 分册编号
电子技术基础课程群列表,面向就业列出电路分析、模拟电子技术、数字电子技术与信号与系统四门课
数字电子技术课程教材与参考书目页,列出阎石主编教材及五本中英文参考书的出版社与年份
查看本课件的文字版(共 117 页,供检索与复制)

第1页:数字电子技术基础 1-1 封面

本页为《数字电子技术基础》课件 1-1 分册封面,标示英文课程名称 Fundamentals of Digital Electronic Techniques 及分册编号 1-1。

第2页:电子技术基础课程群

面向未来就业与后续发展的电子技术基础课程群包括:

  • Fundamentals of Circuit Analysis 电路分析基础
  • Fundamentals of Analog Electronic Techniques 模拟电子技术基础
  • Fundamentals of Digital Electronic Techniques 数字电子技术基础
  • Signal and System 信号与系统

第3页:教材与参考书目

教材
阎石《数字电子技术基础》第五版,北京:高等教育出版社,1998
[美] M. Morris Mano《数字设计(第三版影印版)》Digital Design,高等教育出版社,2002
参考书
[美] Thomas L. Floyd《数字基础(第七版英文版)》Digital Fundamentals,科学出版社,2002
[美] James Bignell、Robert Donovan《数字电子学(第四版英文版)》Digital Electronics,高等教育出版社,2003
张克农《数字电子技术基础》,高等教育出版社,2003
华成英《数字电子技术基础》,高等教育出版社,2002
陈晰《数字电子技术基础教程》,科学出版社,1998
刘盾、李春华《数字电子技术基础学习指导与提高》,北京航空航天大学出版社,2003

第4页:课程内容覆盖范围

本课程内容覆盖以下九个模块:

  • 1 逻辑代数基础 Basic Logic / Boolean Algebra
  • 2 门电路 Logic Gates Circuits
  • 3 组合逻辑 Combinational Logic
  • 4 触发器 Trigger / Flip-Flop
  • 5 时序逻辑 Sequential Logic
  • 6 时序逻辑应用与脉冲波形 Sequential Logic Application and Clock Wave
  • 7 半导体存储器 Semiconductor Memory Devices
  • 8 可编程逻辑器件 PLD
  • 9 数模与模数转换 D/A and A/D Conversion

第5页:第一章 逻辑代数基础

第一章 逻辑代数基础 Basic Logic / Boolean Algebra 的小节安排:

  • 1.1 数字量与模拟量
  • 1.2 数制与编码
  • 1.3 算术运算
  • 1.4 基本逻辑运算
  • 1.5 布尔代数定律与规则
  • 1.6 逻辑函数及其表示
  • 1.7 布尔代数化简
  • 1.8 卡诺图
  • 1.9 无关项

第6页:数字的概念与应用领域

Digital 一词源自计算机按数字计数执行运算的方式。早年数字电子技术仅局限于计算机系统,如今已广泛用于:

  • 电视与 DVD
  • 通信系统
  • 雷达
  • 导航与制导系统
  • 军事系统
  • 医疗仪器
  • 工业过程控制
  • 消费类电子产品

数字系统在日常生活中作用突出,是电子信息类学习者必须掌握的基础。

第7页:模拟量与数字量

模拟量 Analog quantity
在时间或幅值上连续变化的量,自然界中多数真实现象如温度、视觉、声音、触觉、电压、电流都以模拟形式出现。
数字量 Digital quantity
在时间与数值上离散(逐级跳变)的量。

例如指针式手表用指针夹角表示时间,数字式手表直接用数字显示时间。

第8页:温度采样与模数转换

对温度这一模拟量按采样间隔 Δ 采样,得到的数字编码(采样表示)如下:

温度模拟量的三位数字编码
数字编码温度(℃)
0000
00110
01020
01130
10040
10150
11060
11170

Δ 为采样间隔 sampling interval,1/Δ 即采样率 sampling rate。

第9页:图像的数字化表示

自然界生成的图像是模拟量而非数字量,需要经过采样(数字化)处理。分辨率用像素数表示,常见如 800×600、1024×768;分辨率越高,图像越清晰。本页给出原始图像与 7×7、14×14 数字化后的对比。

第10页:黑白图像的编码

黑白图像可用位串表示:每个像素取 0 或 1,逐行排列形成二进制序列,再按十六进制分组记录,如 (01F0…)2、(00000007FA1…)2。本页给出 7×7 与 14×14 点阵的编码结果。

第11页:彩色图像的表示

彩色图像在黑白点阵的基础上为每个像素增加颜色信息,更高的屏幕分辨率意味着更多像素,图像细节与色彩层次也随之提升。

第12页:声音的波形表示

声音在时间上连续变化,可用横轴为时间 time、纵轴为幅值 AMP 的波形表示,是最典型的模拟量之一。

第13页:采样与量化编码

将最大幅值 Max. AMP 作 16 等分(16=24),每个采样点用 4 位二进制表示:

声音采样点的四位编码
采样点量化值四位编码
t181000
t291001
t370111
t420010
t520010

采样率越高,音质越好,即 Quality vs sampling rate 的权衡关系。

第14页:数字电路与数字系统

模拟系统 Analog Systems
处理以模拟形式表示的物理量的装置组合,如扩音系统、磁带记录。
数字系统 Digital Systems
处理以数字形式表示的物理量或逻辑信息的装置组合,如 DVD、计算机。

数字技术经历了真空管电路 → 分立晶体管 → 复杂集成电路的发展过程。学习数字电路基础的同时也应了解模拟电路,因为许多应用二者兼有。

第15页:数字计算机做什么

数字计算机只(并且只能)处理数字:

  • 接收称为数据 data 的数字
  • 对这些数字执行运算 operations
  • 要执行的运算也以数字形式给出,称为指令 instructions
  • 运算后形成新的数字

第16页:计算机数据采集系统

本页为典型的基于计算机的数据采集系统框图(引自 National Instruments 应用笔记 AN007),说明外界模拟信号经采集卡进入计算机处理的通路。

第17页:早期数字计算机的发展

  • 1830 年:Charles Babbage 研制出粗糙的机械计算装置
  • 1944 年:哈佛大学建成第一台可运行的数字计算机,但属于机电式而非电子式
  • 1946 年:现代数字电子技术以电子数字计算机 ENIAC(Electronic Numerical Integrator And Computer)为开端

第18页:ENIAC 电子数字计算机

ENIAC(1946 年)设计者:John W. Mauchly(1907—1980)与 J. Presper Eckert(1919—1995)。

  • 采用 18800 只真空管电路实现
  • 体积庞大:约 8 英尺 × 3 英尺 × 100 英尺,合 2.44×0.9×30.48 立方米
  • 运算速度约 5k/s,尚不及今天手持计算器的算力

说明:源文件中机房尺寸英制单位写作 inches(英寸),与其所附米制数值 2.44×0.9×30.48 m 不符,此处按米制换算结果订正为 feet(英尺)。

第19页:ENIAC 计算机实物图

本页展示 1946 年 ENIAC(Electronic Numerical Integrator And Computer)电子数字积分计算机的外观,直观反映早期电子计算机的庞大规模。

第20页:晶体管缩放的收益

处理器工艺世代从 Intel 386 DX、486 DX、Pentium 到 Pentium II,特征尺寸依次为 1.5µ、1.0µ、0.8µ、0.6µ、0.35µ、0.25µ 逐级缩小,带来两项收益:

  • 芯片面积更小,成本更低
  • 单芯片可集成更多功能,系统性能更好

第21页:集成电路技术进步

晶体管不断缩小,使芯片更小、单芯片可容纳的器件更多,单芯片晶体管数量每 1.5—2 年翻一番。技术缩放 Technology Scaling 带来投资增加、性价比提升与市场增长的正循环。

第22页:摩尔定律

摩尔定律 Moore s Law 是一个著名观察结论:研究者倾向于每 18 个月将晶体管尺寸缩小一半。本页以 Intel Research 的晶体管样品图加以说明。

第23页:数字技术的局限与优势

局限
真实世界主要是模拟的 ANALOG,必须先经 A/D 转换才能进入数字系统处理,再经 D/A 转换回到真实世界。
优势
接收、设计、存储(RAM、ROM 等)、处理、放大与传输更容易且成本更低,可无失真地重复传输
精度与准确度更高
运算可程控,复杂逻辑功能易于表示为二进制函数
受噪声影响小
可制作在集成电路芯片上

第24页:A/D 与 D/A 转换的应用

  • 电话系统基于电路交换,基础设施为传输模拟语音信号而设计
  • 调制解调器经电话线联网时,必须把计算机数据伪装成语音信号
  • 互联网基础设施完全是数字的,网络语音需要把语音伪装成数字数据

这是一次根本性的反转,同样的变化也将发生在电视、有线电视与音频领域。

第25页:调制解调器 Modem

拨号上网需要一台调制解调器,也就是 Modem。电话线只能传递模拟信号,而电脑信息都是数字信号:发送前必须把数字信号转换成模拟信号,接收时再转换回数字信号。前一个过程叫调制,后一个过程叫解调,在电话线两端完成这种信号转换的设备就是调制解调器。

第26页:数制的概念

数制用于枚举事物的状态,例如钱币、书本、星体、年份、小时等。人类习惯十进制(以 10 为基),但也有许多非十进制的情形:

  • 星期:7 进制
  • 分、秒:60 进制
  • 月份:12 进制
  • 小时:12 或 24 进制

第27页:古埃及数字

本页展示古埃及数字 Egyptian Numerals,采用 10 进制记数,用不同符号表示 1、10、100 等数量级。

第28页:巴比伦 60 进制数字

古巴比伦数字 Babylonians Numerals 采用 60 进制,其按权展开示例:

1×603 + 57×602 + 46×601 + 40×600 = 424000

说明:源文件中末项写作 40*600,按其位权含义应为 40×600(即 40),此处按标准位权写法订正,计算结果 424000 与原稿一致。

第29页:中文数字

中文数字同样基于 10 进制,除 0—9 的壹、貳、參、肆、伍、陸、柒、捌、玖、拾外,还有佰、仟、萬、億、兆、京等更高数量级单位。

第30页:数制的定义

数制
规定数字符号如何表示数量以及如何运算的一套规则。
K 进制
用 K 个不同符号表示 K 种不同实体或状态,逢 K 进一。例如十进制用 0—9 共 10 个数字符号表示 10 种数量。

每个符号称为一个数位 digit;当要描述的状态数 M 大于 K 时,需要用多个数位组合表示,例如用两位 10 表示第十一个状态。

第31页:二至七进制数制

  • 2 进制(binary):0/1、低/高、关/开、否/是、假/真;只有两个数字,最简单,在数字电子学中应用最广,bit 即 binary digit 的缩写
  • 3 进制(ternary):0/1/2、真/假/未知
  • 4 进制(quaternary):0/1/2/3
  • 5 进制(quinary):0/1/2/3/4
  • 6 进制(senary):0/1/2/3/4/5
  • 7 进制(septenary):星期日到星期六、0/1/2/3/4/5/6

第32页:八至十六进制数制

  • 8 进制(octal):0—7
  • 9 进制(novenary):0—8
  • 10 进制(decimal):0—9
  • 12 进制(duodecimal):0—9、A、B
  • 16 进制(hexadecimal):0—9、A、B、C、D、E、F

当状态数超过基数时,需要两位或多位组合表示,这就是为什么不直接用 10 而要写成两位数字。

第33页:用多个符号表示更多状态

以 6 进制(senary)为例,当要描述的状态大于 6 时,需要使用一个以上的符号组合:

  • 单个符号表示状态 1 至状态 6
  • 两个符号组合表示状态 7 及以后,如状态 7、状态 8、状态 9、状态 10、状态 11、状态 12 等

第34页:6 进制状态与数码对照

6 进制(senary)数制中用多个数位表示更多状态的对应关系:

6 进制状态与数码对照
数码状态序数
0状态 1(空状态)0
1状态 21st
2状态 32nd
3状态 43rd
4状态 54th
5状态 65th
10状态 76th
11状态 87th
12状态 98th
13状态 109th
14状态 1110th
15状态 1211th
20状态 1312th

第35页:常用数制一览

本页汇总数字电子技术中最常用的几种数制:二进制、八进制、十进制与十六进制,给出各自的数码集合与典型应用场合。

第36页:位数与可描述状态数

在 r 进制数制中,位数与可描述的状态数(0 至 rN−1)关系如下:

r 进制位数与状态数
位数可描述状态数
1 位r1
2 位r2
3 位r3
N 位rN

例如两位 3 进制可得 32=9 种组合,三位十进制可得 103=1000 种组合。

第37页:K 进制与位权

一般地,任意 K 进制数可写成 N=(Ap−1Ap−2…A1A0.A−1A−2…A−q)K,基数 K 写作下标。每个数码依据其位置携带确定位权,因此位置很关键:346.17 ≠ 463.71。

第38页:基 K 数制的位权

一般形式
N=(Ap−1…A1A0.A−1…A−q)K,其中点为小数点,K 为基数,p 为整数位数,q 为小数位数。
位权
从小数点向左依次为 K0、K1、K2…;向右依次为 K−1、K−2、K−3…

最左位 Ap−1 为最高有效位 MSD(二进制称 MSB),最右位 A−q 为最低有效位 LSD(二进制称 LSB)。

第39页:十进制的位权

十进制(Base 10 / Radix 10)以小数点为界,向左依次为个位 100、十位 101、百位 102、千位 103、万位 104,向右依次为十分位 10−1、百分位 10−2。

第40页:二进制的位权

二进制(Base 2 / Radix 2)以二进制小数点为界,向左依次为个位 20、二位 21、四位 22、八位 23、十六位 24,向右依次为二分之一位 2−1、四分之一位 2−2。

第41页:按权展开求和法

按权展开求和法 Sum-of-Weights Method:把数展开为幂级数后逐项相加。示例:

N = (251.41)10 = 2×102 + 5×101 + 1×100 + 4×10−1 + 1×10−2

第42页:任意进制转十进制示例

  • 二进制:数码 {0,1},(11010.11)2 = 1×24+1×23+0×22+1×21+0×20+1×2−1+1×2−2 = (26.75)10
  • 八进制:数码 {0—7},(127.4)8 = 1×82+2×81+7×80+4×8−1 = (87.5)10
  • 十六进制:数码 {0—9, A—F},(B65F)16 = 11×163+6×162+5×161+15×160 = (46687)10

另有单位换算:1 K = 210 = 1024,1 M = 220 = 1048576,1 G = 230 = 1073741824。

第43页:进制转换练习题

本页为把任意进制数转换为十进制的例题,配合上一页的按权展开求和法使用,用于课堂练习。

第44页:为什么使用二进制

人类习惯十进制,但数字电子技术广泛使用二进制,原因是:

  • 一个二进制位 bit 只有 0 和 1 两个取值
  • 具有高、低两个稳定状态的电子器件(或 ON、OFF)极易制造且可靠性高
  • 多数数字系统中 1 表示高电平、0 表示低电平,开关、指示灯、晶体管的通断同样可用 1 与 0 表示

第45页:二进制的单位与术语

  • K(Kilo)= 210 = 1024 ≈ 103
  • M(Mega)= 220 = 1048576 ≈ 106
  • G(Giga)= 230 ≈ 109
  • T(Tera)= 240 ≈ 1.099×1012
  • 因此 4K = 22×210 = 212 = 4096

Bit 为二进制位,Byte 为字节,等于 8 bit 信息量。应学会按 2 的幂计数。

第46页:2 的幂对照表

2 的幂常用数值
n2n
01
12
24
38
416
532
664
7128
8256
9512
101024
112048
124096
201 M
301 G

第47页:为什么使用八进制与十六进制

二进制数过长且容易看错:(15)10 写成二进制 (1111)2 有 4 位,写成八进制 (17)8 只有 2 位,写成十六进制 (F)16 只有 1 位。

  • 一位八进制数对应三位二进制数,如 001,101,011,100,101,000.001,010 → 15345012(左端补两个 0、右端补一个 0 以凑足三位)
  • 一位十六进制数对应四位二进制数,如 0111,0101,1100,1010,0000.1000 → 75CA08(左端补一个 0、右端补三个 0 以凑足四位)

第48页:十六进制

  • 十六进制使用 16 个数码:0—9 与 A—F
  • 由于 16 = 24,一位十六进制数等价于四位二进制数,因此常被当作二进制的简写记号,例如用 B4 表示 10110100
  • 十六进制常用于表示 32 位 IP 地址与 24 位颜色值

第49页:十进制转 r 进制的方法

任意十进制数(整数部分与小数部分)转换为 r 进制:

整数部分
整数部分除以 r 取余数,所得余数构成新整数,最后一个余数为最高有效位 MSB。
小数部分
小数部分乘以 r 取进位(整数部分),继续相乘直到小数为 0 或达到所需精度,最后一个进位为最低有效位 LSB。

第50页:十进制转二进制

本页给出十进制转二进制的示例:整数部分反复除 2 取余,自下而上读出即得 MSD 到 LSD;小数部分反复乘 2 取整。图中标出 MSD、LSD 与二进制小数点位置。

第51页:十进制转十六进制

本页给出十进制转十六进制的示例:整数部分反复除 16 取余得到 MSD 至 LSD,小数部分乘 16 取整,图中标出十六进制小数点位置。

第52页:十进制转 r 进制整数例题

十进制整数转换为其他进制的示例:

  • (315)10 = (473)8
  • (315)10 = (13B)16

第53页:十进制小数转换例题

十进制小数部分转换示例(乘基取整法):

  • (0.479)10 = (0.3651…)8:0.479×8 = 3.832(MSD 为 3),0.832×8 = 6.656,0.656×8 = 5.248,0.248×8 = 1.984(LSD 为 1)
  • (0.479)10 = (0.0111…)2:0.479×2 = 0.9580,0.9580×2 = 1.9160,0.9160×2 = 1.8320,0.8320×2 = 1.6640

第54页:按精度要求的小数转换

例:将 (0.39)10 转换为二进制,要求精度达到 0.1%。

题意即需要几位二进制小数才能达到 0.1% 的转换精度。二进制的 1 K = 1024,即 1/2−10 = 1024,所以需要 10 位小数:

(0.39)10 = (0.0110001111)2

第55页:任意两种进制互转

例:(18.6)9 = ( ? )11。任意两种进制 A 与 B 之间的转换步骤为:先把数从 A 进制转到十进制,再从十进制转到 B 进制。

  • (a) 按权展开:N10 = 1×91 + 8×90 + 6×9−1 = 9 + 8 + 0.666… = (17.666…)10
  • (b) 基数除法与乘法:0.666×11 = 7.326,0.326×11 = 3.586,0.586×11 = 6.446
  • 结果:N11 = (16.736…)11

第56页:二与八、十六进制互换规则

二进制转八/十六进制
从小数点开始向左、向右分别按三位(八进制)或四位(十六进制)分组,不足时左端补前导零、右端补尾随零,再把每组换成对应的八或十六进制数码。
八/十六进制转二进制
把每一位八进制数替换为 3 位二进制、每一位十六进制数替换为 4 位二进制,最左与最右多余的 0 可舍去。

第57页:二进制与八进制互换

本页演示二进制与八进制的互换:以小数点为界向左、向右每三位一组,不足三位补 0,再逐组换成八进制数码。

第58页:二进制与十六进制互换

本页演示二进制与十六进制的互换:以小数点为界每四位一组,不足四位补 0,再逐组换成十六进制数码。

第59页:八进制与十六进制互换

本页演示八进制与十六进制的互换,通常先转换为二进制作为中间桥梁,再按三位或四位重新分组得到目标进制。

第60页:特殊进制的快速转换

当 B = Ak(k 为正整数)时,两种进制可直接分组替换:

  • A 转 B:从小数点向两侧按 k 位分组,每组替换为 B 进制的一个数码
  • B 转 A:把 B 进制每位替换为 A 进制的 k 位数码

例:(001 010 111.100)2 = (127.4)8(按三位分组);(B65F)16 = (1011 0110 0101 1111)2(每位对应四位)。

第61页:常用进制转换路径

本页给出十进制、八进制、二进制与十六进制之间相互转换的便捷途径图,说明以二进制为枢纽时八进制与十六进制的转换最为简便。

第62页:二进制数制

  • 二进制使用两个二值数码 0 与 1,一位即一个 bit,表示是与非、真与假、开与关、高与低等两值量
  • 1 位可区分 2 种情况(T、F),2 位可区分 4 种(TT、TF、FT、FF),3 位可区分 8 种
  • 一个字节 byte 为 8 位,因此可区分 28=256 种情况
  • 一般地,n 位可区分 2n 种情况

第63页:编码的概念

编码 Code
为每一条信息指定唯一的二进制数码串。
数字数据码
用于数值计算,如 BCD 码,可表示 +2、−5.5 等带符号数。
字符数据码
不用于计算而用于表示含义,如 ASCII 码,可表示字符、字母、符号、姓名、地址、电话号码等。

第64页:BCD 码

BCD 码 Binary Coded Decimal 用 4 位二进制码表示十进制的 10 个数码 0—9。

  • 3 位只有 8 种组合,不够用;4 位有 16 种组合,其中 6 种不用
  • k 位十进制数用 BCD 表示需要 4k 位
  • 例:(185)10 = (0001 1000 0101)BCD = (10111001)2,BCD 用 12 位而纯二进制只需 8 位

BCD 占用位数较多,但与十进制之间的转换更容易。

第65页:为什么使用 BCD 码

人类习惯读写十进制,而二进制是计算机最自然的数制,BCD 在二者之间提供了良好的接口:

  • 把十进制数转换为二进制
  • 所有算术运算在二进制下完成
  • 再把二进制结果转换回十进制

第66页:常用加权 BCD 码

加权码中每个位被赋予固定权重,D = B3W3 + B2W2 + B1W1 + B0W0:

常用加权 BCD 码的位权
码制W3W2W1W0
8421 码8421
2421 码2421
84-2-1 码84−2−1

其他四位 BCD 码还有 4221、5211、5421、7536 等。

第67页:8421 BCD 码

  • 8421 BCD 表示中,每个十进制数码转换为其 4 位纯二进制等值
  • 每位十进制数映射到四位,按位加权 8(23)、4(22)、2(21)、1(20)
  • 因此 BCD 码有时也被称为 8421 码

第68页:8421 BCD 加法

  • 当 BCD 数位之和小于等于 1001(9)时,与二进制加法相同即可,如 4+5 = 0100+0101 = 1001(9),结果有效
  • 当和大于 1001(9)时为非法 BCD 码,需加 6(0110)修正,如 4+8 = 0100+1000 = 1100(大于 1001),加 0110 得 10010,即 0001 0010 = 12

第69页:BCD 加法例题

计算下列 BCD 数相加:

  • 10000110 + 00010011,即 86 + 13:得 1001 1001(99),两组均小于等于 9,结果有效
  • 01100111 + 01010011,即 67 + 53:得 1011 1010,两组均大于 9 为非法码,各加 0110 修正,得 10010 0000(120),即有效的 BCD 结果

第70页:4221 BCD 码

  • 4221 BCD 码中各位权重从左到右依次为 4、2、2、1
  • 与 8421 码不同,4221 码没有非法的表示组合
  • 优点:其二进制表示具有取反即互补的特性

第71页:84-2-1 码

84-2-1 码每个十进制数(0—9)用四位表示,权重从左到右依次为 8、4、−2、−1。示例:

  • 3 的 84-2-1 码为 0101,即 0+4+0+(−1) = 3
  • 5 的 84-2-1 码为 1011,即 8+0+(−2)+(−1) = 5

第72页:无权 BCD 码

无权码的各位没有被赋予固定权重,常见类型有:

  • 余 3 码 Excess-3 code:比对应的 8421 BCD 码大 3
  • 格雷码 Gray Codes,又称单位距离码 Unit-Distance Code
  • 余 3 循环码 Excess-3 cyclic code

第73页:余 3 码

余 3 码即在 8421 BCD 码基础上加 3:

  • 2 的余 3 码为 (0010)2 + (0011)2 = (0101)2
  • 5 的余 3 码为 (0101)2 + (0011)2 = (1000)2

优点:做 BCD 加法时,当数位之和大于 1001(9),余 3 码等于 8421 BCD 码加 0011,便于自动进位修正。

第74页:格雷码与余 3 循环码

格雷码(单位距离码)与余 3 循环码的共同特点是:相邻两个数之间只有一位发生变化,可减少多位同时翻转带来的计数错误。例如二进制 7 到 8 是 0111 到 1000,全部位都要变化;而格雷码 0100 到 1100 只有一位变化,速度快且不易出错。

十进制数字与格雷码、余 3 循环码对照(部分)
十进制格雷码余 3 循环码
000000010
100010110
200110111
300100101
401100100
501111100
601011101
701001111
811001110
911011010

说明:源文件编码表为图片化排版,部分行列粘连,此处按标准格雷码与余 3 循环码编码规则整理,建议对照原课件图片核对。

第75页:自补码

自补码 Self-complementing Codes 的特点是:某数码的编码与其 9 的补数的编码互为反码,二者相加结果相同。本页给出自补特性的示例与求和验证。

第76页:十进制转反射格雷码

本页给出由十进制数转换为反射格雷码的方法:先写出对应的二进制数,再按相邻位异或(相同为 0、相异为 1)自左向右逐位生成格雷码,最高位保持不变。

第77页:反射格雷码转十进制

本页给出由反射格雷码还原为十进制数的方法:从最高位起逐位向前累加异或,得到对应的二进制数,再按权展开转换为十进制。

第78页:字符编码概述

字符编码用于处理字母、数字、特殊符号、标点与控制字符等信息,常见类型:

  • ASCII 美国信息交换标准代码:最知名且应用最广,每字符 7 位,共 27=128 种组合,第 8 位常用作奇偶校验位
  • 扩展 ASCII:每字符 8 位,共 256 种组合
  • Unicode:16 位编码,可表示各国语言、数学符号、几何图形与装饰标志等
  • EBCDIC:扩展二—十进制交换码,8 位,用于 IBM、UNIVAC 大型机
  • GB:简体中文;BIG-5:繁体中文

第79页:ASCII 码表

ASCII 码用 b6—b0 共 7 位表示字符,行列交叉定位。下表列出常用字符的编码:

ASCII 码常用字符编码对照
字符b6b5b4b3b2b1b0说明
NUL0000000空字符,控制字符
SP0100000空格
00110000数字 0,同区还有 1—9、: ; < = > ?
@1000000同区为 @ 与大写 A—O
P1010000同区为大写 P—Z 与方括号、反斜杠、脱字符、下划线
`1100000同区为 ` 与小写 a—o
p1110000同区为小写 p—z 与 { | } ~
DEL1111111删除字符,控制字符

说明:原课件为 16 列 × 8 行的完整 ASCII 码表图片,此处整理为按区归纳的常用字符对照,完整行列建议对照原课件图片查看。

第80页:ASCII 码

ASCII(American Standard Code for Information Interchange)每字符用 7 位表示,共 27 = 128 种组合,对应 128 个字符。

第81页:扩展 ASCII 码

扩展 ASCII(Extended ASCII)每字符用 8 位表示,共 28 = 256 种组合,可表示 256 个字符,用于补充制表符与各国字母等图形字符。

第82页:扩展 ASCII 编码示例

以单词 National 为例,各字符的十六进制与二进制编码如下:

National 各字符的扩展 ASCII 编码
字符十六进制二进制
N4E00101110
a6101100001
t7401110100
i6901101001
o6F01101111
n6E01101110
a6101100001
l6C01101010

说明:标准 ASCII 中 N 为 4EH、a 为 61H、l 为 6CH,源文件所列二进制串与十六进制值存在个别位差错,此处按十六进制值订正为标准二进制写法。

第83页:Unicode 编码

ASCII 过于简单,各厂商通过扩展字符集加以补充,既混乱又仍受限于 256 个字符。随着计算机在世界范围普及,需要显示日文、中文等文字以及各种符号,于是出现 Unicode:每个字符用 2 字节(16 位)表示。

第84页:Unicode 的编码范围

Unicode 是 16 位字母数字编码,可表示 216 = 65536 种符号,每字符 2 字节。常见区段:

  • $0041—005A:A—Z
  • $0061—4007A:a—z
  • $3040—318F:日文平假名、片假名、汉语拼音字母、韩文
  • $3400—3D2D:韩文 Hangul 符号
  • $4E00—9FFF:中日韩汉字 Han

Web 浏览器、Java 与多数现代软件均采用 Unicode。

第85页:Unicode 字符样例

本页给出 Unicode Samples,展示拉丁字母、汉字、日文假名与各类符号在 16 位编码下的字符样例。

第86页:EBCDIC 码

EBCDIC(Extended Binary Coded Decimal Interchange Code)每字符用 8 位表示:

  • 高 4 位为区位 Zone bits:标识该码表示字符、(无)符号数还是符号
  • 低 4 位为数字位 Digit bits:用于数字 0—9

第87页:EBCDIC 码表

本页给出 EBCDIC 编码表,按区位与数字位的组合列出各字符对应的 8 位编码,可与 ASCII 码表对照查看两者差异。

第88页:Big5 码

Big5 码用于繁体中文字符:1 个字符 = 2 字节(16 位)。本页给出 Big5 编码的示例字符及其字节表示。

第89页:Big5 码示例

本页展示 Big5 Code 的编码示例,给出若干繁体汉字所对应的十六进制双字节编码。

第90页:检错码与奇偶校验

数据在读写或通过铜线、电话线、无线通信传输时可能出错,因此需要检错:在数据中附加冗余信息。常见做法是给 ASCII 字符增加一个奇偶校验位 Parity bit。

  • 偶校验 Even parity:附加位使总的 1 的个数为偶数
  • 奇校验 Odd parity:附加位使总的 1 的个数为奇数

例:字符 A 原码 1000001,偶校验写作 01000001,奇校验写作 11000001。

第91页:二进制运算的分类

数字电子系统的两个基本能力:用编码以数字形式表示真实数量,以及用布尔代数处理与判断二进制变量来控制系统。二进制运算分两类:

  • 算术运算:数码作为数值数据时的加、减、乘、除
  • 逻辑运算:数码作为逻辑状态(是/非、真/假、开/关、高/低、好/坏)时的运算

第92页:二进制加减法规则

基本算术运算加、减、乘、除的步骤与十进制相同。二进制加法产生进位 carry,二进制减法产生借位 borrow:

二进制加法与减法规则
算式进位和借位差
0 + 0 / 0 − 00000
0 + 1 / 0 − 10111
1 + 0 / 1 − 10100
1 + 1 / 1 − 01001

第93页:二进制乘除法规则

二进制乘法与除法规则
算式积算式商
0 × 000 ÷ 0无意义
0 × 100 ÷ 10
1 × 001 ÷ 0无意义
1 × 111 ÷ 11

第94页:二进制加减法例题

加法示例:101011(被加数)+ 011001(加数),进位为 111011,结果为 1000100。

减法示例:100101(被减数)− 011011(减数),借位为 0110010,结果为 001010。

第95页:二进制乘法例题

乘法示例:11010(被乘数)× 1010(乘数),部分积依次为 00000、11010、00000、11010,移位相加得积 100000100。

第96页:二进制四则运算的电路实现

四则运算示例:加法 1001+0101、减法 1001−0101、乘法 1001×0101、除法 1011÷0101。

由运算过程可以看出:

  • 乘法运算可用加法与左移移位两种操作实现
  • 除法运算可用减法与右移移位两种操作实现

因此二进制数的加、减、乘、除运算都可以用加法运算电路来实现,关键问题是如何把减法运算变为加法运算。

第97页:数值数据的表示

数值数据包括整数与实数、正数与负数,基 r 数值数据的表示方式有:

  • 无符号数 Unsigned magnitude、(r−1) 的补码、r 的补码
  • 原码 Sign-magnitude、符号—(r−1) 的补码、符号—r 的补码
  • 浮点数 Floating-Point

有符号 n 位整数 I = (An−1An−2…A1A0)2 中,An−1 = 0 表示正,An−1 = 1 表示负。

第98页:补码的概念

补码的作用
用于简化减法运算,只需加法器即可完成减法。
r 的补码 [N]r
[N]r = rn − (N)r,n 为 (N)r 的位数。
(r−1) 的补码 [N]r−1
[N]r−1 = rn − (N)r − 1。

可见 [N]r = [N]r−1 + 1,且补码的补码仍得原数。

第99页:补码求法示例

  • 十进制:546700 的 9 的补码为 999999 − 546700 = 453299;再加 1 得 10 的补码 453300
  • 二进制:1011000 的 1 的补码为逐位取反得 0100111;再加 1 得 2 的补码 0101000

第100页:r 的补码运算性质

(N)2 = (101001)2 的 2 的补码为 [N]2 = 26 − (101001)2 = (1000000)2 − (101001)2 = (010111)2。

  • (N)2 + [N]2 = (101001)2 + (010111)2 = (1000000)2,舍弃进位后为 0,因此 [N]2 可用来表示 −(N)2
  • [[N]2]2 = (1000000)2 − (010111)2 = (101001)2 = (N)2
  • n = 6 时 (1010)2 的 2 的补码为 (110110)2
  • (72092)10 的 10 的补码为 (100000)10 − (72092)10 = (27908)10

第101页:用补码实现减法

基数补码数制用于把减法转化为加法,从而减少硬件需求(只需加法器)。M − N = M + (−N),即把 N 的 r 的补码加到 M 上:

  • 若 M ≥ N,产生末端进位,舍弃该进位,结果即为 M − N
  • 若 M < N,无进位产生,结果为 N − M 的 r 的补码,对其再求补码并在前面加负号即为答案

第102页:十进制补码减法例题

用 10 的补码计算:

  • 72532 − 3250:72532 + 96750(3250 的 10 的补码)= 169282,舍弃末端进位 1,答案为 69282
  • 3250 − 72532:03250 + 27468(72532 的 10 的补码)= 30718,无末端进位,答案为 −(30718 的 10 的补码) = −69282

第103页:9 的补码减法例题

用反码(r−1 的补码)数制做减法时,若产生进位则要把该进位加到结果上(循环进位 end-around carry)。用 9 的补码计算:

  • 72532 − 3250:72532 + 96749 = 169281,循环进位 +1 得 69282
  • 3250 − 72532:03250 + 27467 = 30717,答案为 −(30717 的 9 的补码) = −69282

第104页:原码表示

n 位整数原码 Sign-Magnitude 的表示范围:

  • 最小为 00000…0,最大为 11111…1(即 2n−1 − 1)
  • +0 = (0000)2,而 −0 = (1000)2;+3 = (0011)2,而 −3 = (1011)2

缺点:存在 +0 与 −0 两种不同的零,且不易用简单电路(通常是加法器)实现。

第105页:二进制反码表示

n 位整数反码 Sign-1 s Complement:正数与原码相同,负数由其正数表示逐位取反得到。以 4 位为例:

  • +3 = (0011)2,−3 = (1100)2
  • +0 = (0000)2,−0 = (1111)2

缺点:仍存在 +0 与 −0 两个零;虽易用加法器实现,但效率不如补码。

第106页:二进制补码表示

n 位整数补码 Sign-2 s Complement:正数与原码相同,负数为其正数表示取反后加 1。以 4 位为例:

  • +3 = (0011)2,−3 = (1100)2 + 1 = (1101)2
  • +0 = (0000)2,−0 = (1111)2 + 1 = (0000)2

优点:零只有一种表示。

第107页:4 位整数表示对比

原码、反码与补码三种表示对正数是相同的;原码与反码中 +0 和 −0 表示不同,补码中则统一为 0000。本页以 4 位整数的完整编码对照给出比较。

第108页:整数的表示范围

用一个字节(8 位)表示整数时,三种表示法的范围如下:

8 位整数三种表示法的范围
表示法最小值最大值(正)零的表示
原码−127(11111111)+127(01111111)+0 与 −0 两种
反码−127(10000000)+127(01111111)+0 与 −0 两种
补码−128(10000000)+127(01111111)00000000 一种

一般地:原码与反码范围为 −(2n−1−1) ~ 0 ~ 2n−1−1,补码范围为 −2n−1 ~ 0 ~ 2n−1−1。

第109页:有符号数表示的注意点

  • 三种有符号表示对正数相同,对负数则不同
  • 11001 表示什么?无符号数为 25;原码为 −9;反码为 −6;补码为 −7
  • 用 8 位表示 9:+9 只有 00001001 一种;−9 的原码为 10001001、反码为 11110110、补码为 11110111

负数在算术运算中采用符号—补码形式更方便,实际多用补码。

第110页:有符号二进制运算例题

用补码做四道例题:

  • +6(00000110)+ +13(00001101)= +19(00010011)
  • −6(11111010)+ +13(00001101)= +7(00000111)
  • +6(00000110)+ −13(11110011)= −7(11111001)
  • −6(11111010)+ −13(11110011)= −19(11101101)

运算只需加法,无需比较符号;所有进位均舍弃。若答案为负,则它是补码形式,需再求补码并冠以负号,例如 11111001 求补得 00000111,即 −7。

第111页:浮点数的组成

浮点数
由符号位 S、尾数(小数)F 与阶码 E 组成,按标准科学计数法书写。
尾数 mantissa
表示数值大小的部分。
阶码 exponent
表示小数点应移动的位数,其幂的底为基 r。

第112页:浮点数的表示标准

计算机中实数都以浮点数形式表示,不同 CPU 的表示方式各异。Intel 80486 按 ANSI/IEEE 标准 754-1985 定义三种形式:

  • 单精度 Single Precision:32 位
  • 双精度 Double Precision:64 位
  • 扩展精度 Extended Precision:80 位

第113页:单精度浮点数格式

单精度浮点数共 32 位:

  • 符号位:最左 1 位
  • 阶码 E:后续 8 位,范围 −126 < E < 128,因此 32 位浮点数可替代 129 位的二进制整数
  • 阶码以偏置形式表示,即 E10 + 12710,以避免出现负数
  • 尾数(小数)F:剩余 23 位

第114页:十进制浮点数示例

把 (241506800)10 表示为浮点数:

  • = 0.2415068 × 109,写作 0.2415068E9,其中 E 表示乘以 10 的多少次幂
  • 尾数 mantissa 为 0.2415068,阶码 exponent 为 9

规格化的含义:把小数点移到所有数字的最左侧,使尾数成为纯小数,阶码即为 10 的幂次。

第115页:二进制单精度浮点数示例

把 (1011010010001)2 表示为单精度浮点数:= 1.011010010001 × 212。

  • 符号位为 0(正数)
  • 尾数取小数部分 .011010010001,因二进制小数点左边恒为 1,该位不存入尾数
  • 阶码 12 加偏置 127 得 139,即 (10001011)2
  • 单精度浮点数的值为 (−1)S(1+F)(2E−127),本例拼接为 0 10001011 01101001000100000000000

第116页:无穷大的浮点表示

IEEE 754 中的特殊值示例:无穷大 ∞ 用阶码全为 1、尾数全为 0 的位模式表示。

第117页:浮点表示例题

本页为浮点数表示的例题,配合单精度格式与偏置阶码的说明使用,用于课堂练习。

顶部目录