1、第1章 数制与编码 1.1 数字逻辑电路概述数字逻辑电路概述 自然界的各种物理量可分为模拟量和数字量两大类。自然界的各种物理量可分为模拟量和数字量两大类。模拟量在时间上是连续取值,幅值上也是连续变化的,表模拟量在时间上是连续取值,幅值上也是连续变化的,表示模拟量的信号称为模拟信号,处理模拟信号的电子电路示模拟量的信号称为模拟信号,处理模拟信号的电子电路称为模拟电路。数字量是一系列离散的时刻取值,数值的称为模拟电路。数字量是一系列离散的时刻取值,数值的大小和每次的增减都是量化单位的整数倍,即它们是一系大小和每次的增减都是量化单位的整数倍,即它们是一系列时间离散、数值也离散的信号。表示数字量的信号
2、称为列时间离散、数值也离散的信号。表示数字量的信号称为数字信号。处理数字信号的电子电路称为数字电路。数字信号。处理数字信号的电子电路称为数字电路。第1章 数制与编码 数字信号波形数字信号波形正弦波信号正弦波信号三角波信号三角波信号u uOt Otu u第1章 数制与编码 数字电路的一般框图如图 1.1.1 所示,它有 n 个输入1X,2X,nX和 m 个输出1F,2FmF,此外还有一个定时信号,即时钟脉冲信号(Clock)。对于每一个输入iX和输出jF都是时间和数值上离散的二值信号,用数字 0 和1 来表示。在数字电路和系统中,可以用 0 和 1 组成的二进制数码表示数量的大小,也可以用0 和
3、 1 表示两种不同的逻辑状态。当用 0 和 1 表示客观事物两种对立的状态时,它已不表示数值了,而是表示逻辑 0 和逻辑 1,这两种对立的逻辑状态称为二值数字逻辑或简称为数字逻辑。数字电路的输出与输入之间满足一定的逻辑关系,因而数字电路也称为逻辑电路。第1章 数制与编码 图1.1.1 数字电路系统框图 第1章 数制与编码 数字电路中的电子器件都工作在开关状态,电路的输数字电路中的电子器件都工作在开关状态,电路的输出只有高、低两个电平,因而很容易实现二值数字逻辑。出只有高、低两个电平,因而很容易实现二值数字逻辑。在分析实际电路时,逻辑高电平和逻辑低电平都对应一定在分析实际电路时,逻辑高电平和逻辑
4、低电平都对应一定的电压范围的电压范围,不同系列的数字集成电路不同系列的数字集成电路,其输入、输出为高电其输入、输出为高电平或低电平所对应的电压范围是不同的(参看第平或低电平所对应的电压范围是不同的(参看第3章)。一章)。一般用逻辑高电平般用逻辑高电平(或接电源电压或接电源电压)表示逻辑表示逻辑1和二进制数的和二进制数的1,用逻辑低电平(或接地)表示逻辑用逻辑低电平(或接地)表示逻辑0和二进制数的和二进制数的0。在数。在数字电路中,当用高电平表示逻辑字电路中,当用高电平表示逻辑1,低电平表示逻辑,低电平表示逻辑0时称时称为正逻辑;当用低电平表示逻辑为正逻辑;当用低电平表示逻辑1、高电平表示逻辑、
5、高电平表示逻辑0时称时称为负逻辑,通常情况下数字电路使用正逻辑。为负逻辑,通常情况下数字电路使用正逻辑。第1章 数制与编码 数字电路的输入、输出逻辑电平随时间变化的波形称数字电路的输入、输出逻辑电平随时间变化的波形称为数字波形。数字波形有两种类型,一种是电位型(或称为数字波形。数字波形有两种类型,一种是电位型(或称非归零型),另一种是脉冲型(或称归零型)。在波形图非归零型),另一种是脉冲型(或称归零型)。在波形图中,一定的时间间隔中,一定的时间间隔T称为称为1位(位(1bit)或一拍。电位型的)或一拍。电位型的数字波形在一拍时间内用高电平表示数字波形在一拍时间内用高电平表示1,低电平表示,低电
6、平表示0,脉,脉冲型数字波形则在一拍时间内以脉冲有无来表示冲型数字波形则在一拍时间内以脉冲有无来表示1和和0。图。图1.1.2是表示是表示01001101100序列信号两种数字波形,其中图序列信号两种数字波形,其中图(a)为电位型表示的波形,图()为电位型表示的波形,图(b)是脉冲型表示的波形。)是脉冲型表示的波形。第1章 数制与编码 图1.1.2 序列信号的两种数字波形(a)电位型的数字波形;(b)脉冲型的数字波形 第1章 数制与编码 数字电路和系统的输入、输出逻辑关系(功能或行为)数字电路和系统的输入、输出逻辑关系(功能或行为)通常可以用文字、真值表、逻辑函数表达式、逻辑电路图、通常可以用
7、文字、真值表、逻辑函数表达式、逻辑电路图、时序图、状态图、状态表和硬件描述语言等多种形式进行时序图、状态图、状态表和硬件描述语言等多种形式进行描述。在众多描述中,将文字描述的逻辑命题采用真值表、描述。在众多描述中,将文字描述的逻辑命题采用真值表、状态表(或图)描述的过程称为逻辑抽象,它是逻辑设计状态表(或图)描述的过程称为逻辑抽象,它是逻辑设计中关键的一步。有关数字系统的各种描述形式我们将在后中关键的一步。有关数字系统的各种描述形式我们将在后续章节介绍。续章节介绍。第1章 数制与编码 数字电路系统只能处理用二进制数表示的数字信号,数字电路系统只能处理用二进制数表示的数字信号,而人们习惯用的十进
8、制数不能直接被数字电路系统接收。而人们习惯用的十进制数不能直接被数字电路系统接收。因此,在进行人与数字电路系统交换信息时,需要把十进因此,在进行人与数字电路系统交换信息时,需要把十进制数转换成二进制数,当数字系统运行结束时,为了便于制数转换成二进制数,当数字系统运行结束时,为了便于人们阅读,又需要将二进制数再转换成十进制数。所以为人们阅读,又需要将二进制数再转换成十进制数。所以为了便于信息交换和传输,我们需要研究各种数制之间的转了便于信息交换和传输,我们需要研究各种数制之间的转换及不同的编码方式。换及不同的编码方式。第1章 数制与编码 1.2 数数 制制 1.1.1 进位计数制进位计数制 按进
9、位的原则进行计数,称为进位计数制。每一种进按进位的原则进行计数,称为进位计数制。每一种进位计数制都有一组特定的数码,例如十进制数有位计数制都有一组特定的数码,例如十进制数有 10 个数个数码,码,二进制数只有两个数码,而十六进制数有二进制数只有两个数码,而十六进制数有 16 个数码。个数码。每种进位计数制中允许使用的数码总数称为基数或底数。每种进位计数制中允许使用的数码总数称为基数或底数。在任何一种进位计数制中,任何一个数都由整数和小在任何一种进位计数制中,任何一个数都由整数和小数两部分组成,数两部分组成,并且具有两种书写形并且具有两种书写形式:位置记数法和式:位置记数法和多项式表示法。多项式
10、表示法。第1章 数制与编码 1.十进制数十进制数(Decimal)采用采用 10 个不同的数码个不同的数码0、1、2、9和一个小数点和一个小数点(.)。进位规则是进位规则是“逢十进一逢十进一”。若干个数码并列在一起可以表示一个十进制数。例如在若干个数码并列在一起可以表示一个十进制数。例如在435.86这个数中,小数点左边第一位的这个数中,小数点左边第一位的5代表个位,它的数值代表个位,它的数值为为5;小数点左边第二位的小数点左边第二位的 3 代表十位,它的数值为代表十位,它的数值为3101;左边第三位的左边第三位的 4 代表百位,它的数值为代表百位,它的数值为4102;小数点右边;小数点右边第
11、一位的值为第一位的值为810-1;小数点右边第二位的值为;小数点右边第二位的值为610-2。可。可见,数码处于不同的位置,代表的数值是不同的。这里见,数码处于不同的位置,代表的数值是不同的。这里102、101、100、10-1、10-2 称为权或位权,即十进制数中各位的权称为权或位权,即十进制数中各位的权是基数是基数 10 的幂,各位数码的值等于该数码与权的乘积。因的幂,各位数码的值等于该数码与权的乘积。因此此有有 第1章 数制与编码 2101210610810510410486.435上式左边称为位置记数法或并列表示法,右边称为多项式表上式左边称为位置记数法或并列表示法,右边称为多项式表示法
12、或按权展开法。示法或按权展开法。一般,对于任何一个十进制数一般,对于任何一个十进制数N,都可以用位置记数法都可以用位置记数法和多项式表示法写为和多项式表示法写为 1221100112211210121101010101010101010)(nmiiimmnnnnmnnaaaaaaaaaaaaaaaN第1章 数制与编码 式中,式中,n代表整数位数,代表整数位数,m代表小数位数,代表小数位数,ai(-min-1)表示第表示第i位数码,它可以是位数码,它可以是0、1、2、3、9 中的任意一个,中的任意一个,10i为第为第i位数码的权值。位数码的权值。上述十进制数的表示方法也可以推广到任意进制数。对上
13、述十进制数的表示方法也可以推广到任意进制数。对于一个基数为于一个基数为R(R2)的的R进制计数进制计数制,数制,数N可以写为可以写为 1221100112211210121)(nmiiimmnnnnmnnRRaRaRaRaRaRaRaRaaaaaaaaN式中,式中,n代表整数位数,代表整数位数,m代表小数位数,代表小数位数,ai为第为第i位数码,它可以是位数码,它可以是0、1、(R-1)个不同数码中的任何一个,个不同数码中的任何一个,Ri为第为第i位数码的权值。位数码的权值。(1-2)第1章 数制与编码 2.二进制数二进制数 二进制数的进位规则是二进制数的进位规则是“逢二进一逢二进一”,其进位
14、基数,其进位基数R=2,每位数码的取值只能是每位数码的取值只能是0或或1,每,每位的权是位的权是2的幂。表的幂。表1.2.1列列出了二进制位数、权和十进制数的对应关系。出了二进制位数、权和十进制数的对应关系。表表1.2.1二进制位数、权和十进制数的对应关系二进制位数、权和十进制数的对应关系 二进制位数 13 12 11 10 9 8 7 6 5 4 3 2 1 122 112 102 92 82 72 62 52 42 32 22 12 02 权(十进制表示)4096 2048 1024 512 256 128 64 32 16 8 4 2 1 二进制位数-1-2-3-4-5-6 12 22
15、23 24 25 26 权(十进制表示)0.5 0.25 0.125 0.0625 0.03125 0.015625 第1章 数制与编码 任何一个二进制数可表示为任何一个二进制数可表示为 1221100112211210121222222222)(nmiiimmnnnnmnnaaaaaaaaaaaaaaaN例如:例如:1032101232)375.11(21212021212021)011.1011(第1章 数制与编码 二进制数却有以下优点:二进制数却有以下优点:因为它只有因为它只有0、1 两个数码,在数字电路中利用一个两个数码,在数字电路中利用一个具有两个稳定状态且能相互转换的开关器件就可以
16、表示一具有两个稳定状态且能相互转换的开关器件就可以表示一位二进制数,因此采用二进制数的电路容易实现,位二进制数,因此采用二进制数的电路容易实现,且工作且工作稳定可靠。稳定可靠。算术运算规则简单。二进制数的算术运算和十进制算术运算规则简单。二进制数的算术运算和十进制数的算术运算规则基本相同,惟一区别在于二进制数是数的算术运算规则基本相同,惟一区别在于二进制数是“逢二进一逢二进一”及及“借一当二借一当二”,而不是,而不是“逢十进一逢十进一”及及“借一当十借一当十”。第1章 数制与编码 例如:例如:第1章 数制与编码 3.八进制数八进制数(Octal)八进制数的进位规则是八进制数的进位规则是“逢八进
17、一逢八进一”,其基数,其基数R=8,采,采用的数码是用的数码是0、1、2、3、4、5、6、7,每位的权是每位的权是 8 的的幂。幂。任何一个八进制数也可以根据式任何一个八进制数也可以根据式(1-2)表示为表示为 188)(nmiiiaN例如:例如:1010128)5.254(5.068764384868783)4.376(第1章 数制与编码 4.十六进制数十六进制数(Hexadecimal)十六进制数的特点是:十六进制数的特点是:采用的采用的 16 个数码为个数码为0、1、2、9、A、B、C、D、E、F。符号符号AF分别代表十进制数的分别代表十进制数的1015。进位规则是进位规则是“逢十六进一
18、逢十六进一”,基数,基数R=16,每位的,每位的权是权是16的幂。的幂。任何一个十六进制数,任何一个十六进制数,也可以根据式也可以根据式(1-2)表示为表示为 11616)(nmiiiaN102101216)0664.939(16116116111610163)113(AB例如:例如:第1章 数制与编码 1.2.2 进位计数制之间的转换进位计数制之间的转换 1.2.2 进位计数制之间的转换进位计数制之间的转换1二进制数与十进制数之间的转换二进制数与十进制数之间的转换1)二进制数转换成十进制数)二进制数转换成十进制数按权展开法按权展开法二进制数转换成十进制数时,只要二进制数按式(二进制数转换成十
19、进制数时,只要二进制数按式(1-3)展开,然后将各项数值按十进制数相加,便可得到等)展开,然后将各项数值按十进制数相加,便可得到等值的十进制数。例如:值的十进制数。例如:10211242)75.22(2121212121)11.10110(同理,若将任意进制数转换为十进制数,只需将数同理,若将任意进制数转换为十进制数,只需将数(N)R写成按权展开的多项式表示式,写成按权展开的多项式表示式,并按十进制规则进行并按十进制规则进行运算,运算,便可求得相应的十进制数便可求得相应的十进制数(N)10。第1章 数制与编码 2)十进制数转换成二进制数整数部分除以整数部分除以2 2取余法,直到商为零为止取余法
20、,直到商为零为止小数部分乘以小数部分乘以2 2取整法,直到满足精度为止取整法,直到满足精度为止十进制十进制二进制二进制第1章 数制与编码 2 44 余数 低位 2 22 0=K0 2 11 0=K1 2 5 1=K2 2 2 1=K3 2 1 0=K4 0 1=K5 高位 0.375 2 整数 高位 0.750 0=K1 0.750 2 1.500 1=K2 0.500 2 1.000 1=K3 低位所以:所以:(44.375)(44.375)D D(101100.011)(101100.011)B B第1章 数制与编码 例如,将(57)10转换为二进制数:故 第1章 数制与编码 例如,将(0
21、.724)10转换成二进制小数。第1章 数制与编码 解要精确到二进制小数解要精确到二进制小数10位,位,1/210=1/1024。B D 0.39=0.0110001111 例例 将将(0.39)D转换成二进制数转换成二进制数,精度达到精度达到0.1%。0.392=0.78 b-1=00.782=1.56 b-2=10.562=1.12 b-3=10.122=0.24 b-4=00.242=0.48 b-5=00.482=0.96 b-6 =00.962=1.92 b-7 =10.922=1.84 b-8 =10.842=1.68 b-9 =10.682=1.36 b-10=1第1章 数制与编
22、码 应指出,小数部分乘应指出,小数部分乘2取整的过程不一定能使最后乘取整的过程不一定能使最后乘积为积为0,因此转换值存在一定的误差。通常在二进制小数,因此转换值存在一定的误差。通常在二进制小数的精度已达到预定的要求时,运算便可结束。的精度已达到预定的要求时,运算便可结束。将一个带有整数和小数的十进制数转换成二进制数将一个带有整数和小数的十进制数转换成二进制数时,必须将整数部分和小数部分分别按除时,必须将整数部分和小数部分分别按除2取余法和乘取余法和乘2取整法进行计算,然后将两者的转换结果合并起来。取整法进行计算,然后将两者的转换结果合并起来。同理,若将十进制数转换成任意同理,若将十进制数转换成
23、任意R进制进制(N)R,则整数,则整数部分转换采用除部分转换采用除R取余法,小数部分采用乘取余法,小数部分采用乘R取整法。取整法。第1章 数制与编码 2.二进制数与八进制数、十六进制数之间的相互转换二进制数与八进制数、十六进制数之间的相互转换 八进制数和十六进制数的基数分别为八进制数和十六进制数的基数分别为8=23,16=24,所所以三位二进制数恰好相当一位八进制数,四位二进制数相以三位二进制数恰好相当一位八进制数,四位二进制数相当一位十六进制数,当一位十六进制数,它们之间的相互转换是很方便的。它们之间的相互转换是很方便的。二进制数转换成八进制数的方法是从小数点开始,二进制数转换成八进制数的方
24、法是从小数点开始,分分别向左、向右,将二进制数按每三位一组分组别向左、向右,将二进制数按每三位一组分组(不足三位不足三位的补的补0),然后写出每一组等值的八进制数。,然后写出每一组等值的八进制数。例如,求例如,求(01101111010.1011)2的等值八进制数:的等值八进制数:第1章 数制与编码 例如,求例如,求(01101111010.1011)2的等值八进制数:的等值八进制数:二进制二进制 001 101 111 010 .101 100 八进制八进制 1 5 7 2 .5 4 所以所以 (01101111010.1011)2=(1572.54)8 二进制数转换成十六进制数的方法和二进
25、制数与八进二进制数转换成十六进制数的方法和二进制数与八进制数的转换相似,从小数点开始分别向左、向右将二进制制数的转换相似,从小数点开始分别向左、向右将二进制数按每四位一组分组数按每四位一组分组(不足四位补不足四位补0),然后写出每一组等,然后写出每一组等值的十六进制数。值的十六进制数。第1章 数制与编码 例如,将例如,将(1101101011.101)转换为十六进制数:转换为十六进制数:00 11 01 10 10 11 .10 103 6 B .A 所以所以 (1101101011.101)2=(36B.A)16 八进制数、十六进制数转换为二进制数的方法可以采八进制数、十六进制数转换为二进制
26、数的方法可以采用与前面相反的步骤,即只要按原来顺序将每一位八进制用与前面相反的步骤,即只要按原来顺序将每一位八进制数数(或十六进制数或十六进制数)用相应的三位用相应的三位(或四位或四位)二进制数代替即二进制数代替即可。可。例如,分别求出例如,分别求出(375.46)8、(678.A5)16的等值二进制数:的等值二进制数:八进制八进制 3 7 5 .4 6 十六进制十六进制 6 7 8 .A 5 二进制二进制 011 111 101.100 110 二进制二进制 0110 0111 1000.1010 0101 所以所以(375.46)8=(011111101.100110)2,(678.A5)
27、16=(011001111000.10100101)2 第1章 数制与编码 1.3 编编 码码 1.3.1带符号数的编码带符号数的编码在数字系统中,需要处理的不仅有正数,还有负数。为在数字系统中,需要处理的不仅有正数,还有负数。为了表示带符号的二进制数,在定点整数运算的情况下,通常了表示带符号的二进制数,在定点整数运算的情况下,通常以代码的最高位作为符号位,用以代码的最高位作为符号位,用0表示正,用表示正,用1表示负,其余表示负,其余各位为数值位。代码的位数称为字长,它的数值称为真值。各位为数值位。代码的位数称为字长,它的数值称为真值。带符号的二进制数可以用原码、反码和补码几种形式表带符号的二
28、进制数可以用原码、反码和补码几种形式表示。示。第1章 数制与编码 1.原码原码原码的表示方法是:符号位加数值位。原码的表示方法是:符号位加数值位。例如,真值分别为例如,真值分别为+62和和-62,若用,若用8位字长的原码来表位字长的原码来表示示,则可写为则可写为 N=+D62=+011111B0 原N=00111110 N=-6D2=-011111B0 原N=10111110 原码表示简单、直观,而且与真值转换方便,但用原原码表示简单、直观,而且与真值转换方便,但用原码进行减法运算时,电路结构复杂码进行减法运算时,电路结构复杂,不容易实现,因此引入不容易实现,因此引入了反码和补码。了反码和补码
29、。第1章 数制与编码 2.反码反码 反码的表示方法是:正数的反码与其原码相同,即符号位加数值位;负数的反码是符号位为 1,数值位各位取反。例如,真值分别为+45 和-45,若用 8 位字长的反码来表示则可写为 0010110145原 0010110145反 1010110145原 1101001045反 第1章 数制与编码 3.补码补码 字长为 n 的整数 N 的补码定义是:补N=022)2(mod2011NNNNnnnn 由于 2n-1 是 n 位全为1 的二进制数,而 2n比(2n-1)多 1,所以求一个数的补码可以用以下简便方法:(1)正数和 0的补码与原码相同。(2)负数的补码是将其原
30、码的符号位保持不变,对数值位逐位求反,然后在最低位加1。第1章 数制与编码 第1章 数制与编码【例1.3.1】已知十进制数+6和-5,试分别用4位字长和8位字长的二进制补码来表示。解解:(1)n=4:(1)n=4 01106原 01106补 11015原 10115补 (2)n=8 000001106原 000001106补 100001015原 111110115补 第1章 数制与编码【例1.3.2】已知4位字长的二进制补码分别为0011、1011、1000,试求出相应的十进制。解:解:(1)0011补X,符号位为0 0011原X X=+3(2)1011补X,符号位为 1 11011011补
31、原X X=-5(3)1000补X,符号位为1 它是 4 位负数补码的最大值,没有原码,故 X=-8 第1章 数制与编码 4补码的运算补码的运算在数字系统中,求一个数的反码和补码都很容易,而且利用补码可以方便地进行带符号二进制数的加、减运算。若X、Y均为正整数,则X-Y的运算可以通过X补+-Y补来实现,这样将减法运算变成了加法运算,因而简化了电路结构。采用补码进行加、减法运算的步骤如下:(1)根据XY补=X补+Y补,分别求出X补、Y补和X+Y补。(2)补码相加时,符号位参与运算,若符号位有进位,则自动舍去。(3)根据XY补的结果求出XY原,进而求出XY的结果。第1章 数制与编码【例 1.3.3】
32、试用 4 位字长的二进制补码完成下列运算 7-5 3-4 解:01117补 10115补 00113补 11004补 补7+补5为 舍去()即 00105757补补补,符号位为 0 001057原 故 7-5=+2 第1章 数制与编码 3补补+-4补补为为 必须指出,两个补码相加时,如果产生的和超出了有必须指出,两个补码相加时,如果产生的和超出了有效数字位所表示的范围,则计算结果会出错,之所以发生效数字位所表示的范围,则计算结果会出错,之所以发生错误是因为计算结果产生了溢出,解决的办法是扩大字长。错误是因为计算结果产生了溢出,解决的办法是扩大字长。11114343补补补100143原即即,符号
33、位为,符号位为1 故故 341第1章 数制与编码 1.3.2 二二十进制编码十进制编码(BCD码码)二二十进制编码是用四位二进制码的十进制编码是用四位二进制码的10 种组合表示十种组合表示十进制数进制数09,简称,简称BCD码码(Binary Coded Decimal)。这种编码至少需要用四位二进制码元,而四位二进制这种编码至少需要用四位二进制码元,而四位二进制码元可以有码元可以有 16 种组合。当用这些组种组合。当用这些组合表示十进制数合表示十进制数09时,时,有六种组合不用。由有六种组合不用。由 16 种组合中选用种组合中选用 10 种组合,有种组合,有 101016109.2)!101
34、6(!16A第1章 数制与编码 表1.3.1 几种常用的 BCD 码 十进制数 8421 码 5421 码 2421 码 余 3 码 BCD Gray 码 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0010 0011 0100 1000 1001 1010 1011 1100 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 00
35、00 0001 0011 0010 0110 0111 0101 0100 1100 1000 第1章 数制与编码 1.8421 BCD码码 8421 BCD码是最基本和最常用的码是最基本和最常用的BCD码,码,它和四它和四位自然二进制码相似,位自然二进制码相似,各位的权值为各位的权值为8、4、2、1,故故称为有权称为有权BCD码。和四位自然二进制码不同的是,码。和四位自然二进制码不同的是,它只它只选用了四位二进制码中前选用了四位二进制码中前 10 组代码,即用组代码,即用00001001分分别代表它所对应的十进制数,别代表它所对应的十进制数,余下的六组代码不用余下的六组代码不用。第1章 数制
36、与编码 01118421BCD()D 7=11214180+=求求BCD代码表示的十进制数代码表示的十进制数2421BCDD11011 2+2 4+1 1=(7)对于有权对于有权BCD码,可以根据位权码,可以根据位权展开求得所代表的十进制数展开求得所代表的十进制数第1章 数制与编码 对于一个多位的十进制数,需要有与十对于一个多位的十进制数,需要有与十进制位数相同的几组进制位数相同的几组BCD代码来表示。代码来表示。104635 8421BCD 108632 2421BCD463.5=0100 0110 0011.0101863.2=1110 1100 0011.0010不能省略!不能省略!不能
37、省略!不能省略!第1章 数制与编码 2.5421 BCD码和码和2421 BCD码码 5421 BCD码和码和2421 BCD码为有权码为有权BCD码,它们从高位码,它们从高位到低位的权值分别为到低位的权值分别为5、4、2、1和和2、4、2、1。这两种有这两种有权权BCD码中,有的十进制数码存在两种加权方法,例如,码中,有的十进制数码存在两种加权方法,例如,5421 BCD码中的数码码中的数码5,既可以用,既可以用1000表示,也可以用表示,也可以用0101表示,表示,2421 BCD码中的数码码中的数码6,既可以用,既可以用1100表示,表示,也可以也可以用用0110表示。这说明表示。这说明
38、5421 BCD码和码和2421 BCD码的编码方案码的编码方案都不是惟一的,表都不是惟一的,表1-2只列出了一种编码方案。只列出了一种编码方案。表表1.3.1中中2421 BCD码的码的 10 个数码中,个数码中,0和和9、1和和8、2和和7、3和和6、4和和5的代码的对应位恰好一个是的代码的对应位恰好一个是0时,另一个就是时,另一个就是1。我们称。我们称0和和9、1和和8互为反码。因此互为反码。因此2421 BCD码具有对码具有对9互互补的特点,它是一种对补的特点,它是一种对9的自补代码的自补代码(即只要对某一组代码各即只要对某一组代码各位取反就可以得到位取反就可以得到9的的补码补码),在
39、运算电路中使用比较方便。,在运算电路中使用比较方便。第1章 数制与编码 3.余余3 码码 余余 3 码是码是8421 BCD码的每个码组加码的每个码组加3(0011)形成的。形成的。余余 3 码也具有对码也具有对 9 互补的特点,即它也是一种互补的特点,即它也是一种 9 的自补码,所的自补码,所以也常用于以也常用于BCD码的运算电路中。码的运算电路中。用用BCD码可以方便地表示多位十进制数,例如十进制码可以方便地表示多位十进制数,例如十进制数数(579.8)10可以分别用可以分别用8421 BCD码、余码、余 3 码表示为码表示为 码余码3842110)1011.110010101000()1
40、000.100101110101()8.579(BCD第1章 数制与编码 1.3.3可靠性编码可靠性编码代码在形成、传输过程中可能会发生错误。为了减少这代码在形成、传输过程中可能会发生错误。为了减少这种错误,出现了可靠性编码。常用的可靠性编码有以下两种。种错误,出现了可靠性编码。常用的可靠性编码有以下两种。1Gray码(格雷码)码(格雷码)Gray码最基本的特性是任何相邻的两组代码中,仅有一码最基本的特性是任何相邻的两组代码中,仅有一位数码不同,即具有相邻性,因此又称单位距离码。此外,位数码不同,即具有相邻性,因此又称单位距离码。此外,Gray码的首尾两个码组也有相邻性,因此又称循环码。码的首
41、尾两个码组也有相邻性,因此又称循环码。Gray码的编码方案有多种,典型的码的编码方案有多种,典型的Gray码如表码如表1.3.2所所示。示。第1章 数制与编码 表1.3.2 典型的 Gray 码 十进制数 二进制码 Gray 码 B3 B2 B1 B0 G3 G2 G1 G0 0 0 0 0 0 0 0 0 0 一位反射对称轴 1 0 0 0 1 0 0 0 1 二位反射对称轴 2 0 0 1 0 0 0 1 1 3 0 0 1 1 0 0 1 0 .三位反射对称轴 4 0 1 0 0 0 1 1 0 5 0 1 0 1 0 1 1 1 6 0 1 1 0 0 1 0 1 7 0 1 1 1
42、0 1 0 0 .四位反射对称轴 8 1 0 0 0 1 1 0 0 9 1 0 0 1 1 1 0 1 10 1 0 1 0 1 1 1 1 11 1 0 1 1 1 1 1 0 12 1 1 0 0 1 0 1 0 13 1 1 0 1 1 0 1 1 14 1 1 1 0 1 0 0 1 15 1 1 1 1 1 0 0 0 第1章 数制与编码 从表从表1.3.2中可以看出,这种代码除了具有单位距离码的中可以看出,这种代码除了具有单位距离码的特点外,还有一个特点就是具有反射特性,即按表中所示的特点外,还有一个特点就是具有反射特性,即按表中所示的对称轴为界,除最高位互补反射外,其余各位沿对
43、称轴镜像对称轴为界,除最高位互补反射外,其余各位沿对称轴镜像对称。利用这一反射特性可以方便地构成位数不同的对称。利用这一反射特性可以方便地构成位数不同的Gray码。码。Gray码的单位距离特性有很重要的意义。例如,两个相码的单位距离特性有很重要的意义。例如,两个相邻的十进制数邻的十进制数13和和14相应的二进制码为相应的二进制码为1101和和1110,在用二,在用二进制数作加进制数作加1计数时,如果从计数时,如果从13变为变为14,则二进制码的最低两,则二进制码的最低两位都要改变,但实际上两位改变不可能同时发生,若最低位位都要改变,但实际上两位改变不可能同时发生,若最低位先置先置0,然后次低位
44、再置,然后次低位再置1,则中间会出现,则中间会出现110111001110,即出现暂短的误码即出现暂短的误码1100,而,而Gray码只有一位变化,因而杜绝码只有一位变化,因而杜绝了出现这种错误的可能。了出现这种错误的可能。第1章 数制与编码 2奇偶校验码奇偶校验码奇偶校验码是一种能够检测出信息在传输中产生奇数奇偶校验码是一种能够检测出信息在传输中产生奇数个码元错误的代码,它由信息位和检验位两部分组成。个码元错误的代码,它由信息位和检验位两部分组成。信息位是位数不限的任何一种二进制代码。校验位仅信息位是位数不限的任何一种二进制代码。校验位仅有一位,它可以放在信息位的前面,也可以放在信息位有一位
45、,它可以放在信息位的前面,也可以放在信息位的后面。其编码方式有以下两种:的后面。其编码方式有以下两种:(1)使得一组代码中信息位和校验位使得一组代码中信息位和校验位“1”的个数之和为的个数之和为奇数,称为奇校验;奇数,称为奇校验;(2)使得一组代码中信息位和校验位使得一组代码中信息位和校验位“1”的个数之和为的个数之和为偶数,称为偶校验。偶数,称为偶校验。第1章 数制与编码 表1.3.3 带奇偶检验的 8421 BCD 码 十进制数 8421 BCD 奇检验 8421 BCD 偶检验 信息位 检验位 信息位 检验位 0 0000 1 0000 0 1 0001 0 0001 1 2 0010
46、0 0010 1 3 0011 1 0011 0 4 0100 0 0100 1 5 0101 1 0101 0 6 0110 1 0110 0 7 0111 0 0111 1 8 1000 0 1000 1 9 1001 1 1001 0 第1章 数制与编码 接收端对接收到的奇偶校验码进行检测时,只需检查接收端对接收到的奇偶校验码进行检测时,只需检查各码组中各码组中“1”的个数是奇数还是偶数,就可以判断代码是的个数是奇数还是偶数,就可以判断代码是否出错。否出错。奇偶校验码只能检查出奇数个代码出错,但不能确定奇偶校验码只能检查出奇数个代码出错,但不能确定是哪一位出错。因此,它没有纠错能力。但由
47、于它编码简是哪一位出错。因此,它没有纠错能力。但由于它编码简单,设备量少,而且在传输中通常一位码元出错的概率最单,设备量少,而且在传输中通常一位码元出错的概率最大,因此该码被广泛采用。大,因此该码被广泛采用。第1章 数制与编码 1.3.4 字符代码字符代码 表表 1.3.4 ASCII码码 第1章 数制与编码 精品课件精品课件!第1章 数制与编码 精品课件精品课件!第1章 数制与编码 ASCII码采用七位二进制数编码,因此可以表示码采用七位二进制数编码,因此可以表示1 2 8 个 字 符。从 表 中 可 见,数 字个 字 符。从 表 中 可 见,数 字 0 9,相 应 用,相 应 用01100000111001来表示,来表示,B8通常用作奇偶检验位,但通常用作奇偶检验位,但在机器中表示时,常使其为在机器中表示时,常使其为0,因此,因此09的的ASCII码为码为 30H39H,大写字母,大写字母AZ的的ASCII码为码为41H5AH等。等。