《数字逻辑》第1章数制与编码_第1页
《数字逻辑》第1章数制与编码_第2页
《数字逻辑》第1章数制与编码_第3页
《数字逻辑》第1章数制与编码_第4页
《数字逻辑》第1章数制与编码_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、? ?数字逻辑数字逻辑? ?第第1 1章数制与编码章数制与编码2第第1 1章章 数制与编码数制与编码 本章介绍数字电路的一些根本概念;数制及本章介绍数字电路的一些根本概念;数制及其转换;原码、反码和补码的概念;二其转换;原码、反码和补码的概念;二- -十进制十进制编码和字符编码。编码和字符编码。 v 1.1 概述概述 v 1.2 数制及其转换数制及其转换v 1.3 编码编码3本章重点本章重点 v 数制的表示方法及其转换方法;数制的表示方法及其转换方法;v 原码、反码和补码的表示形式和性质;原码、反码和补码的表示形式和性质;v 十进制数的二进制编码。十进制数的二进制编码。4 4 概述概述 1.1

2、.1 模拟电子技术和数字电子技术模拟电子技术和数字电子技术1.1.2 脉冲信号和数字信号脉冲信号和数字信号1.1.3 数字电路的特点数字电路的特点5 51.1.1 模拟电子技术和数字电子技术模拟电子技术和数字电子技术v 自然界中的物理量根据其变化规律的特点分为两大类:模拟量自然界中的物理量根据其变化规律的特点分为两大类:模拟量和数字量。和数字量。w模拟量:模拟量:在在数值数值上和上和时间时间上的变化均上的变化均连续连续的物理量。如声的物理量。如声音、温度、湿度、速度、压力、流量等。音、温度、湿度、速度、压力、流量等。模拟信号:模拟信号:表示模拟量的信号。表示模拟量的信号。模拟电路:模拟电路:输

3、出信号与输入信号成比例关系,而内部输出信号与输入信号成比例关系,而内部放大器件工作在线性区的电子电路。放大器件工作在线性区的电子电路。w数字量:数字量:在在数值数值上和上和时间时间上的变化均上的变化均不连续不连续的物理量。如的物理量。如生产线上灌装啤酒的瓶数、通过某座大桥的汽车数量。生产线上灌装啤酒的瓶数、通过某座大桥的汽车数量。数字信号:数字信号:表示数字量的信号表示数字量的信号。数字电路:数字电路:对数字信号进行算术运算和逻辑运算的对数字信号进行算术运算和逻辑运算的电电子电路。子电路。6 6模拟信号模拟信号tuouuuUou1正弦信号正弦信号非正弦信号非正弦信号抽样信号抽样信号w常见模拟信

4、号为常见模拟信号为“正弦交流信号周期性的,用下式表示:正弦交流信号周期性的,用下式表示:w u(t)Umsin(t)w非正弦的周期信号可分解成多个正弦波,用傅立叶级数展开式表示:非正弦的周期信号可分解成多个正弦波,用傅立叶级数展开式表示:w u(t)U0Um1sin(1t1) Um2sin(2t2) w时间上离散的模拟信号是一种抽样信号,它是对模拟信号每隔时间时间上离散的模拟信号是一种抽样信号,它是对模拟信号每隔时间T抽样一次所得到的信号,其幅度取值是连续的,所以仍是模拟信号。抽样一次所得到的信号,其幅度取值是连续的,所以仍是模拟信号。称之为脉冲幅度调制称之为脉冲幅度调制PAM,简称脉幅调制信

5、号。,简称脉幅调制信号。7 7模拟信号和数字信号的区别模拟信号和数字信号的区别w 模拟信号在时间上和辐值上均连续,在一定的动态范模拟信号在时间上和辐值上均连续,在一定的动态范围内可任意取值,任何一个取值都有具体的物理意义。围内可任意取值,任何一个取值都有具体的物理意义。w 例如,热电偶温度传感器工作时输出的电压例如,热电偶温度传感器工作时输出的电压或电流信号就是一种模拟信号或电流信号就是一种模拟信号w 数字信号在时间上和数值上均不连续,其变化总是发数字信号在时间上和数值上均不连续,其变化总是发生在一系列离散的瞬间,其数值大小和每次的增减变生在一系列离散的瞬间,其数值大小和每次的增减变化都是某一

6、个最小单位的整数倍,而小于这个最小数化都是某一个最小单位的整数倍,而小于这个最小数量单位的数值没有任何物理意义。量单位的数值没有任何物理意义。w 例如,用电子电路记录从自动生产线上输出的零件例如,用电子电路记录从自动生产线上输出的零件数目,电路输出就是一个数字信号,其最小的数量单数目,电路输出就是一个数字信号,其最小的数量单位就是位就是“1“18 8模拟电子技术和数字电子技术模拟电子技术和数字电子技术v 电子技术分为模拟电子技术和数字电子技术电子技术分为模拟电子技术和数字电子技术v 模拟电子技术是分析和处理模拟信号的技术模拟电子技术是分析和处理模拟信号的技术v 模拟信号如正弦波具有在数值上和时

7、间上都连续的特模拟信号如正弦波具有在数值上和时间上都连续的特点。点。v 模拟电路使用的主要器件:晶体管,工作在线性区即放模拟电路使用的主要器件:晶体管,工作在线性区即放大区大区构成信号的放大和正弦振荡电路。构成信号的放大和正弦振荡电路。v 数字电子技术是分析和处理数字信号的技术数字电子技术是分析和处理数字信号的技术v 数字信号如矩形波具有在数值上和时间上都不连续的数字信号如矩形波具有在数值上和时间上都不连续的特点。特点。v 数字电路使用的主要器件:晶体管,但工作在非线性区数字电路使用的主要器件:晶体管,但工作在非线性区即饱和区和截止区,构成信号的开关电路。即饱和区和截止区,构成信号的开关电路。

8、9 91.1.2 脉冲信号和数字信号脉冲信号和数字信号v 狭义:脉冲信号是指在短时间内突然作用的信号。狭义:脉冲信号是指在短时间内突然作用的信号。v 广义:除了正弦波或假设干个正弦波合成的信号以外的信广义:除了正弦波或假设干个正弦波合成的信号以外的信号都可以称为脉冲信号。号都可以称为脉冲信号。v 特点:脉冲信号的波形是不连续的,但一般都有周期性。特点:脉冲信号的波形是不连续的,但一般都有周期性。各种脉冲信号波形各种脉冲信号波形(b) 矩形波矩形波(d) 三角波三角波(e) 尖峰波尖峰波(f) 钟形波钟形波(a)狭义的脉冲信号狭义的脉冲信号(c) 锯齿波锯齿波1010数字信号数字信号v 在数字电

9、路中,数字信号是指由上下两种电平构成的矩在数字电路中,数字信号是指由上下两种电平构成的矩形波,通常用形波,通常用“1表示高电平,用表示高电平,用“0表示低电平。表示低电平。v 把矩形波按周期划分,就可以得到由把矩形波按周期划分,就可以得到由0和和1构成的符号组构成的符号组合,如:合,如:“110100011,它可以代表二进制数字,所,它可以代表二进制数字,所以把矩形波称为数字信号。以把矩形波称为数字信号。v 数字信号也是一种脉冲信号。数字信号也是一种脉冲信号。 1 1 0 1 0 0 0 1 1数字信号波形数字信号波形11111.1.3 数字电路的特点数字电路的特点v对数字信号进行算术运算和逻

10、辑运算的对数字信号进行算术运算和逻辑运算的电子电路称为电子电路称为数字电路数字电路 用用0和和1两种状态来表示信息,便于信息的存储、传输和处理。两种状态来表示信息,便于信息的存储、传输和处理。数字电路所处理的是逻辑电平信号,因此,从信号处理的角数字电路所处理的是逻辑电平信号,因此,从信号处理的角度看,度看,数字电路比模拟电路的信号抗干扰能力更数字电路比模拟电路的信号抗干扰能力更强强。 能够对输入的数字信号进行各种算术运算加、减、乘、除能够对输入的数字信号进行各种算术运算加、减、乘、除和逻辑运算与、或、非、与非、或非、与或非、异或。和逻辑运算与、或、非、与非、或非、与或非、异或。数字电路具有逻辑

11、思维能力,是计算机、智能控制电路的根数字电路具有逻辑思维能力,是计算机、智能控制电路的根本电路。本电路。 容易实现集成化,数字集成电路容易实现集成化,数字集成电路IC体积小、功耗低、体积小、功耗低、可靠性高。可靠性高。v 特点:特点:v 只有只有“与、与、“或、或、“非三种根本电路,电路简非三种根本电路,电路简单,容易实现。单,容易实现。在一块半导体基片上,把众多在一块半导体基片上,把众多的数字电路根本单元制作在一的数字电路根本单元制作在一起形成的数字电路起形成的数字电路 12121.2 数制及其转换数制及其转换1.2.1 数制数制1.2.2 数制之间的转换数制之间的转换1.2.3 二进制算术

12、运算二进制算术运算13131.2.1 数制数制v 数字信号通常用数码来表示,不同的数码表示数量的数字信号通常用数码来表示,不同的数码表示数量的不同大小。不同大小。v 用数码表示数量大小时,仅用一位数码往往不够用,用数码表示数量大小时,仅用一位数码往往不够用,因此经常需要用进位的方法组成多位数码来记录数的因此经常需要用进位的方法组成多位数码来记录数的量。量。v 多位数码中每一位的构成方法以及低位和相邻高位之多位数码中每一位的构成方法以及低位和相邻高位之间的关系称为间的关系称为数制数制。v 常用的数制:十进制、二进制、八进制和十六进制。常用的数制:十进制、二进制、八进制和十六进制。v 其他数制:十

13、二进制、六十进制、二十四进制其他数制:十二进制、六十进制、二十四进制1414数制中的根本概念数制中的根本概念v 数码:数制中表示根本数值大小的不同数字符号数码:数制中表示根本数值大小的不同数字符号v 例如,十进制有例如,十进制有10个数码:个数码:0、1、2、3、4、5、6、7、8、9。v 基数:数制所使用数码的个数基数:数制所使用数码的个数v 例如,二进制的基数为例如,二进制的基数为2;十进制的基数为;十进制的基数为10。N进制的基进制的基数为数为N。 v 位权权值:数制中某一位上的位权权值:数制中某一位上的1所表示数值的大小数码所表示数值的大小数码所处位置的价值。假设某数制的基数为所处位置

14、的价值。假设某数制的基数为N,那么第,那么第i位的位权位的位权为基数的为基数的i次方次方Niv 例如,十进制数例如,十进制数“795,其个位数,其个位数5的位权是的位权是100,十位数,十位数9的位权是的位权是101,百位数,百位数7的位权是的位权是102。v 数制:计数的规那么。在人们使用最多的进位计数制中,表示数制:计数的规那么。在人们使用最多的进位计数制中,表示数的符号在不同的位置上时所代表的数的值是不同的。数的符号在不同的位置上时所代表的数的值是不同的。1515位权的概念位权的概念v 位权权值用来代表某一位在数值中所处位置的值。用位权权值用来代表某一位在数值中所处位置的值。用Ni表表示

15、,示,N为基数,为基数,i代表某一位所在位置。整数最低位代表某一位所在位置。整数最低位i=0,i从右从右向左,依次加向左,依次加1;小数点后第;小数点后第1位位i=-1,i从左向右,依次减从左向右,依次减1。 w十进制数十进制数725.6 w各位权值各位权值10210110010-1 w值的计算值的计算710221015100610-1 w结果结果700 + 20 + 5 + 0.6 = 725.6+1616位权的概念续位权的概念续 w二进制数二进制数101.1 w各位权值各位权值2221202-1 w值的计算值的计算12202112012-1 w结果结果4 + 0 + 1 + 0.5 = 5

16、.5+v对于某进制的数,按权展开求和,可以计对于某进制的数,按权展开求和,可以计算得到其对应的十进制数大小。算得到其对应的十进制数大小。1717不同数制数的表示不同数制数的表示v 在数字电路中,可以用括弧加数制基数下标的方式,表示不同在数字电路中,可以用括弧加数制基数下标的方式,表示不同数制的数,如数制的数,如(25)10 、 (1101.101)2 ;或者在数的后面加上该;或者在数的后面加上该数制英文单词的首字母,如数制英文单词的首字母,如25D、。、。v 在编程语言中,是用数字加数制前缀或后缀的方式。例如,在在编程语言中,是用数字加数制前缀或后缀的方式。例如,在Verilog HDL中,采

17、用数字加数制前缀的方式:中,采用数字加数制前缀的方式: v 十进制数的前缀为十进制数的前缀为“D或或“d Decimal v 二进制数的前缀为二进制数的前缀为“B或或“b Binary v 八进制数的前缀为八进制数的前缀为“O或或“o Octonary v 十六进制数的前缀为十六进制数的前缀为“H或或“h Hexadecimal(25)10=d2525D=25 十进制数的前缀或后缀可略十进制数的前缀或后缀可略(1101.101)2(76.56)8(1FD.6C)161818十进制十进制v 十进制是日常生活和工作中最常使用的进位计数制。十进制是日常生活和工作中最常使用的进位计数制。 v 用用09

18、十个符号来表示数,基数:十个符号来表示数,基数:i = 10v 权值:权值:10i 进位规那么:进位规那么:“逢十进一或逢十进一或“借一当十借一当十1. 1. 十进制十进制DecimalDecimal11010)(nmiiikD(125.625)10=1102+2101+5100+610-1+210-2+510-3任意一个十进制数任意一个十进制数D均可展开为:均可展开为:数制使用的数制使用的符号个数符号个数基数的基数的幂次幂次任意一个任意一个N进制数进制数D均可展开为:均可展开为:1Nnmiiik(D)N第第i i位的位的系数系数1919二进制二进制v 目前在数字电路中应用最广泛的是二进制。目

19、前在数字电路中应用最广泛的是二进制。v 用用0和和1两个符号来表示数,基数:两个符号来表示数,基数:i = 2v 权值:权值:2i v 进位规那么:进位规那么: “逢二进一或逢二进一或“借一当二借一当二2. 2. 二进制二进制BinaryBinary(1101.101)2=123+122+021+120+12-1+02-2+12-3= (13.625)10122)(nmiiikD任意一个二进制数任意一个二进制数D均可展开为:均可展开为:0 0和和1 1中的中的一个一个2020八进制八进制v 二进制数非常适合计算机内部数据的表示和运算,但当一个数较大二进制数非常适合计算机内部数据的表示和运算,但

20、当一个数较大时,书写起来位数比较长,既不方便,也不直观。在书写程序和数时,书写起来位数比较长,既不方便,也不直观。在书写程序和数据时用到二进制数的地方常采用八进制或十六进制。据时用到二进制数的地方常采用八进制或十六进制。v 用用07八个符号来表示数,基数:八个符号来表示数,基数:i = 8v 权值:权值:8i v 进位规那么:进位规那么: “逢八进一或逢八进一或“借一当八借一当八3. 3. 八进制八进制OctonaryOctonary(376.65)8=382+781+680+68-1+58-2= (13.625)10188)(nmiiikD任意一个八进制数任意一个八进制数D均可展开为:均可展

21、开为:0 07 7中的中的任一个任一个2121十六进制十六进制v 4位二进制数可以用位二进制数可以用1位十六进制数来表示,用十六进制符号位十六进制数来表示,用十六进制符号书写程序更简便!书写程序更简便!v 用用09和和AF十六个符号来表示数,基数:十六个符号来表示数,基数:i = 16v 权值:权值:16i v 进位规那么:进位规那么: “逢十六进一或逢十六进一或“借一当十六借一当十六4. 4. 十六进制十六进制HexadecimalHexadecimal(1FD.6C)16=1163+15161+13160+616-1+1216-2= (509.421875)1011616)(nmiiikD

22、任意一个十六进制数任意一个十六进制数D均可展开为:均可展开为:0 01515中的中的任一个任一个注意展开时系数为注意展开时系数为015中的任一个中的任一个! 2222不同数制数的对照表不同数制数的对照表十进制十进制二进制二进制八进制八进制十六进制十六进制000102030405060708091011121314150000000100100011010001010110011110001001101010111100110111101111000102030405060710111213141516170123456789ABCDEF基数越大,基数越大,使用的位使用的位数越少数越少23231

23、.2.2 数制之间的转换数制之间的转换v 把一种数制转换为另一种数制的过程称为把一种数制转换为另一种数制的过程称为数制之间的转换数制之间的转换。v 常用的相互转换:十进制二进制;为方便表示二进制,也常用的相互转换:十进制二进制;为方便表示二进制,也需相互转换:二进制八进制或二进制十六进制。需相互转换:二进制八进制或二进制十六进制。1. 1. 十进制转换为十进制转换为NN进制进制w整数局部和小数局部分别进行转换整数局部和小数局部分别进行转换w整数局部:除以整数局部:除以N看余数,直到商为看余数,直到商为0w小数局部:乘以小数局部:乘以N看向整数的进位,直到乘积的小数局部为看向整数的进位,直到乘积

24、的小数局部为0或者到达转换精度要求,那么结束转换或者到达转换精度要求,那么结束转换wD10=(kn-1kn-2kk0. k-1k-2k-m)2w S10=kn-12n-1+kn-22n-2+k121+k020w =2 (kn-12n-2+kn-22n-3+k1 ) +k0w 假设将假设将S10除以除以2,得到商,得到商q0=kn-12n-2+kn-22n-3+k1 ,w 余数为余数为k0二进制数的最低位二进制数的最低位LSB2424十进制转换为十进制转换为N进制进制v 以此类推,每次将得到的商除以以此类推,每次将得到的商除以2,得到的相应余数,得到的相应余数为二进制数的其余各位;当商为为二进制

25、数的其余各位;当商为0时,得到余数时,得到余数kn-1 二进制数的最高位二进制数的最高位MSB。wq0=kn-12n-2+kn-22n-3+k221+k1 w =2 (kn-12n-3+kn-22n-4+k2 ) +k1w 假设将假设将q0再除以再除以2,那么余数为,那么余数为k1二进制数二进制数的次低位的次低位w v 任何十进制整数经过假设干次除以任何十进制整数经过假设干次除以2的运算后,商都的运算后,商都可以到达可以到达0十进制整数转换为二进制整数的结果是十进制整数转换为二进制整数的结果是准确的。准确的。2525十进制转换为二进制例如十进制转换为二进制例如2 62 余数余数 =0 = k0

26、(LSB)2 31 余数余数 =1 = k12 15 余数余数 =1 = k22 7 余数余数 =1 = k32 3 余数余数 =1 = k42 1 余数余数 =1 = k5(MSB) 0【例例】求求(62.625)10=( ?)2 .625 2 1 .250 进位进位“1 = k-1 MSB 2 0 .50 进位进位“0 = k-2 2 1 .0 进位进位“1 = k-3 LSB(62.625)10=(111110.101)2(k5k4k3k2k1k0. k-1k-2k-3)2小数局小数局部为部为0 0先转换整数局部先转换整数局部再转换小数局部再转换小数局部2626十进制转换为二进制十进制转

27、换为二进制纯小数的转换纯小数的转换【例例】求求(0.69)10=( ?)2 ,要求结果精确到小数点后要求结果精确到小数点后4位。位。 .69 2 1 .38 进位进位“1 = k-1 MSB 2 0 .76 进位进位“0 = k-2 2 1 .52 进位进位“1 = k-3 2 1 .04 进位进位“1 = k-4 LSB(0.69)10=(0.1011)22727N进制转为十进制进制转为十进制2. N2. N进制转换为十进制进制转换为十进制方法:通式展开法方法:通式展开法按权展开求和按权展开求和【例例】(1101.011)2= 123+122+021+120+02-1+12-2+12-3=(

28、13.375)10【例例】(376.65)8= 382+781+680+68-1+58-2=(254.828125)10【例例】(1FD.6C)16= 1162+15161+13160+616-1+1216-2 =(509.421875)10任意一个任意一个N进制数进制数D均可展开为:均可展开为:1Nnmiiik(D)N2828二进制与八进制相互转换二进制与八进制相互转换v 因为因为23=8,因此,因此3位二进制数对应位二进制数对应1位八进制数,而位八进制数,而1位八位八进制数对应进制数对应3位二进制数。位二进制数。v 将二进制数转换为八进制数将二进制数转换为八进制数v 对于整数局部,从最低位

29、最右边开始,从右往左,每对于整数局部,从最低位最右边开始,从右往左,每3位二进制数直接写成位二进制数直接写成1位八进制数;对于小数局部,从最位八进制数;对于小数局部,从最高位最左边开始,从左往右,每高位最左边开始,从左往右,每3位二进制数直接写位二进制数直接写成成1位八进制数。位八进制数。【例例】:(11 010 011.110 110 1)2=(323.664)83. 3. 二进制与八进制相互转换二进制与八进制相互转换v 将八进制数转换为二进制数将八进制数转换为二进制数w将八进制数的每一位用等值的将八进制数的每一位用等值的3位二进制数代替。位二进制数代替。【例例】(174.536)8=(1

30、111 100.101 011 110)2 ( 3 2 3 . 6 6 4 )8当小数局部最后当小数局部最后剩下的数缺乏剩下的数缺乏3位时,其右边补位时,其右边补0,补齐,补齐3位位2929二进制与十六进制相互转换二进制与十六进制相互转换v 因为因为24=16,所以,所以4位二进制数对应位二进制数对应1位十六进制数,位十六进制数,而而1位十六进制数对应为位十六进制数对应为4位二进制数。位二进制数。【例例】(1101 0011.1101 101)2=(D3.DA)164. 4. 二进制与十六进制相互转换二进制与十六进制相互转换v 将二进制数转换为十六进制数将二进制数转换为十六进制数w每每4位二进

31、制数为一组,用等值的位二进制数为一组,用等值的1位十六进制数代替。位十六进制数代替。v 将十六进制数转换为二进制数将十六进制数转换为二进制数w将十六进制数的每一位用等值的将十六进制数的每一位用等值的4位二进制数代替。位二进制数代替。【例例】(17C.5F)16=(1 0111 1100.0101 1111)2 ( D 3 . D A )16当小数局部最后当小数局部最后剩下的数缺乏剩下的数缺乏4位位时,其右边补时,其右边补0,补齐补齐4位位30301.2.3 二进制算术运算二进制算术运算v 当两个二进制数码表示两个数量大小时,它们之间可以当两个二进制数码表示两个数量大小时,它们之间可以进行数值运

32、算,称为算术运算。进行数值运算,称为算术运算。v 运算规那么:运算规那么:“逢二进一或逢二进一或“借一当二借一当二【例例】两个二进制数两个二进制数1001和和0101的算术运算的算术运算 加法运算加法运算 1001 + 0101 1110 减法运算减法运算 1001 - 0101 0100 乘法运算乘法运算 1001 0101 1001 0000 100100000101101 除法运算除法运算 1.11 01011001 0101 1000 0101 0110 0101 0010二进制数的乘二进制数的乘法运算可通过法运算可通过“被乘数或被乘数或零左移零左移1 1位位和和“被乘数被乘数或零与局

33、或零与局部积相加部积相加两两种操作完成种操作完成二进制数的除二进制数的除法运算可通过法运算可通过“除数右移除数右移1 1位位和和“从被从被除数或余数除数或余数中减去除数中减去除数两种操作完成两种操作完成v假设再设法将减法操作转化为某种形式的加法操作,那么加、假设再设法将减法操作转化为某种形式的加法操作,那么加、减、乘、除运算全部可用减、乘、除运算全部可用“移位移位和和“相加相加两种操作实现两种操作实现v将大大简化运算电路的结构将大大简化运算电路的结构数字电路中普遍采用二进制数字电路中普遍采用二进制算术运算的重要原因之一。算术运算的重要原因之一。31 编码编码 1.3.1 带符号的二进制数的编码

34、带符号的二进制数的编码 二二-十进制编码十进制编码1.3.3 格雷码格雷码1.3.4 字符编码字符编码32什么是编码什么是编码v不同的数码不仅可以用来表示数量的不同大小,而不同的数码不仅可以用来表示数量的不同大小,而且可用来表示不同的事物或事物的不同状态,这时且可用来表示不同的事物或事物的不同状态,这时这些数码称为代码。这些数码称为代码。v在数字电路和计算机中,主要使用二进制符号在数字电路和计算机中,主要使用二进制符号“0和和“1。二进制符号不仅可以表示二进制数,。二进制符号不仅可以表示二进制数,也可表示十进制数、英文字母和一些特殊符号如也可表示十进制数、英文字母和一些特殊符号如标点符号、控制

35、符等。用二进制符号表示特定信标点符号、控制符等。用二进制符号表示特定信息的过程叫做二进制编码。息的过程叫做二进制编码。331.3.1 带符号的二进制数的编码带符号的二进制数的编码X1=+(真值真值) X1=0.1101011(机器数机器数)符号位符号位 二进制数二进制数二进制数的编码二进制数的编码v 在数字系统中,表示机器数的方法很多,常用的有在数字系统中,表示机器数的方法很多,常用的有原码原码、反码反码和和补码补码。v 绝大多数计算机中采用补码绝大多数计算机中采用补码为什么?为什么?v 在算术运算中,用符号位在算术运算中,用符号位“+号表示正数,用符号位号表示正数,用符号位“-号表示负数号表

36、示负数。v 在数字系统中,把数值最高位的前一位作为符号位,用在数字系统中,把数值最高位的前一位作为符号位,用“0表示表示“+正数,用正数,用“1表示表示“-负数。负数。v 数值连同符号位在一起作为一个数,称为机器数。机器数原来的数值形数值连同符号位在一起作为一个数,称为机器数。机器数原来的数值形式那么称为这个机器数的真值。式那么称为这个机器数的真值。X2=-(真值真值) X1=1.1011011(机器数机器数)341 1、原码、原码1 1、原码、原码true formtrue formv 原码的表示方法原码的表示方法v 正数的原码:符号位用正数的原码:符号位用“0表示,数值局部保持不变;表示,

37、数值局部保持不变;v 负数的原码:符号位用负数的原码:符号位用“1表示,数值局部保持不变。表示,数值局部保持不变。原码表示法又称符原码表示法又称符号号- -数值表示法数值表示法【例例1.11】X1=+0.100101 X1原原=0.1001010X2=-0.1011011X2原原=1.1011011X3=+1101001X3原原=0 1101001X4=-1101001X4原原=1 1101001符号位符号位数值局部绝对值数值局部绝对值v注意:原码、反码和补码的表示根据规那么注意:原码、反码和补码的表示根据规那么直接写出即可,不必按定义来写!直接写出即可,不必按定义来写!35各类数的原码定义各

38、类数的原码定义v 各类数的原码定义各类数的原码定义u小数原码:小数原码:X原原=X 0X1 1X -1X0(负小数)(负小数) X原原= X 0X2n 2nX -2nX0 (负整数)(负整数) +0原原=0.0000000-0原原=1.0000000【例】【例】 X原原=1-X =1- =1.1011011u零的原码:零的原码:【例】【例】 X=-1101001X原原=27- -1101001 =1 1101001u整数原码:整数原码:n 表示表示X数值数值局部的位数局部的位数符号位符号位符号位符号位36原码加法运算规那么原码加法运算规那么v 运算规那么:原码中的符号位不参加运算。同符号数相加

39、运算规那么:原码中的符号位不参加运算。同符号数相加做加法;不同符号数相加做减法:大数的数值局部减去小做加法;不同符号数相加做减法:大数的数值局部减去小数的数值局部,符号位取大数的符号数的数值局部,符号位取大数的符号【例】【例】X原原 =0 1001101,Y原原 =1 1101011,求,求 X+Y原原 解:解:X原原 、 Y原原 的数值局部用的数值局部用|X|、|Y|表示:表示: |X|=1001101,|Y|=1101011 显然显然|X|Y|, 那么求出那么求出R= |Y|-|X|=0011110, X+Y原原 = 1 001111037原码加法流程图原码加法流程图求求R时时X原原和和Y

40、原原的符号位不参加运算的符号位不参加运算38原码表示法的优点和缺点原码表示法的优点和缺点v 优点:简单易懂优点:简单易懂v 缺点:缺点:v 运算过程复杂:进行异号原码的加法运算时,需先判两数运算过程复杂:进行异号原码的加法运算时,需先判两数的大小,然后从大数中减去小数,最后还要判结果的符号的大小,然后从大数中减去小数,最后还要判结果的符号位。位。v 运算器电路结构复杂:需要使用数值比较电路和减法运算运算器电路结构复杂:需要使用数值比较电路和减法运算电路,而且增大了运算时间。电路,而且增大了运算时间。v 因此原码很少被采用因此原码很少被采用如果能用两数的补码相加代替异号原码的加法运如果能用两数的

41、补码相加代替异号原码的加法运算,那么计算过程中无需使用数值比较电路和减算,那么计算过程中无需使用数值比较电路和减法运算电路,将使运算器的电路结构大大简化!法运算电路,将使运算器的电路结构大大简化! 392 2、反码、反码2 2、反码、反码ones complementones complementv 国外一些教材中,也将反码称为国外一些教材中,也将反码称为“1“1的补码的补码ones ones complementcomplement。v 与原码不同的是,反码数值局部的形成和它的符号位有关。与原码不同的是,反码数值局部的形成和它的符号位有关。v 反码的表示方法反码的表示方法v 正数的反码:符号

42、位用正数的反码:符号位用“0“0表示,数值局部与原码的数值表示,数值局部与原码的数值相同;相同;v 负数的反码:符号位用负数的反码:符号位用“1“1表示,数值局部是原码的数值表示,数值局部是原码的数值按位求反。按位求反。【例例1.13】X1=+0.1001010 X1反反=0.1001010X2=-0.1011011X2反反=1.0100100X4=-1101001X4反反=1 0010110X3=+1101001X3反反=0 110100140各类数的反码定义各类数的反码定义v 各类数的反码定义各类数的反码定义w 小数反码:小数反码:w 整数反码:整数反码:w 零的反码:零的反码:X反反=

43、X 0X1 22-n+X -1X0 X反反= X 0X2n (2n+11)+X -2n|Y|,故,故|X|作被减数作被减数, |Y|作减数,差值为正作减数,差值为正 那么求出那么求出R= |X|-|Y|=100 0011, Z原原 = 0 100 0011,其真值为,其真值为Z=+ 100 001142反码运算例如反码运算例如【例】设【例】设X =+ 101 1101,Y = + 001 1010,求,求Z=X-Y。解:解:2反码运算反码运算 Z反反=X-Y反反= X反反+ -Y反反 X反反 =0 101 1101, -Y反反=- 001 1010 反反=1 110 0101 那么那么Z反反

44、= 0 100 0011,其真值为,其真值为Z=+ 100 0011 0 101 1101 + 1 110 0101 (1) 0 100 0010 + 1 0 100 0011符号位产生的符号位产生的进位加到和数进位加到和数的最低位的最低位反码加法运算后,需判反码加法运算后,需判断是否作循环进位运算;断是否作循环进位运算;循环进位运算循环进位运算相当又一相当又一次加法运算次加法运算会影响会影响运算器的运算速度运算器的运算速度433 3、补码、补码3 3、补码、补码twos complementtwos complementv 各类数的补码定义各类数的补码定义w 小数补码:小数补码:w 整数补码

45、:整数补码:w 零的补码:零的补码:X补补= X 0X1 2+X -1X0 X 0X2n (正整数)(正整数) X补补=2n+1+X -2nX0(负整数)(负整数) 0补补=零的补码只有零的补码只有一种形式一种形式n 表示表示X数值数值局部的位数局部的位数【例】【例】 利用补码定义求负小数的补利用补码定义求负小数的补码,求码,求X补补 解:解:X补补=2+X =2 + =1. 0101【例】利用补码定义求负整数的补码,【例】利用补码定义求负整数的补码,X=-0111 解:解:n=4,X补补=25+ - 0111 =100000- 0111 =1 1001符号位符号位910符号位符号位w方法二:

46、向前拨方法二:向前拨7格,格,10+7=17。w 由于表盘的最大数只有由于表盘的最大数只有12,超过,超过12以后的以后的“进位将自动消失,只剩下进位将自动消失,只剩下减去减去12以后的余数,即以后的余数,即17-12=5。补码运算的原理补码运算的原理12121 13 32 24 45 56 67 78 89 91010111110+7-12=510+7-12=510-5=510-5=5v 【例】假设在【例】假设在5点时发现手表停在点时发现手表停在10点上了,怎样点上了,怎样将表针拨回到将表针拨回到5点?点?v 方法一:往回拨方法一:往回拨5格,格,10-5=5。v10-5的减法可以用的减法可

47、以用10+7的加法代替实现的加法代替实现v5和和7相加正好等于产生进位的模数相加正好等于产生进位的模数12。因此称。因此称7为为-5对模对模12的补数,也称补码的补数,也称补码 complement 。v结论:在舍弃进位的条件下,减去某个数可以结论:在舍弃进位的条件下,减去某个数可以用加上该数的补码来代替。用加上该数的补码来代替。 44二进制数补码运算例如二进制数补码运算例如v 此结论同样适用于二进制数的计算。此结论同样适用于二进制数的计算。v 【例】【例】 4 4位二进制数的减法运算:位二进制数的减法运算:1011-0111=01001011-0111=0100即即11-11-7=47=4v

48、 在舍弃进位的条件下,可以用在舍弃进位的条件下,可以用1011+1001=0100 1011+1001=0100 即即11+9=2011+9=20的加法运算代替的加法运算代替0000(0)0001(1)1111(15)0010(2)0011(3)0100(4)0101(5)1001(9)1101(13)0110(6)0111(7)1010(10)1000(8)1100(121011(11)1110(14)11+9-16=411-7=44 4位二进制数补码运算位二进制数补码运算9是是01117对模对模16的补码的补码1011-0111=010011-7=411+9-16=4 1011+1001=

49、1 0100舍弃进位舍弃进位45某种进制的进某种进制的进位基数称为位基数称为模;模; 4位二进制数的位二进制数的进位基数是进位基数是1646补码的表示方法补码的表示方法v 正数的补码:符号位用正数的补码:符号位用“0表示,数值局部与原码的数值表示,数值局部与原码的数值相同;相同;v 负数的补码:负数的补码: 符号位用符号位用“1表示,数值局部是原码的数表示,数值局部是原码的数值按位求反,且最低位加值按位求反,且最低位加1。【例例】 X1 X1补补=0.1001010X2X2补补=1.0100101X4=-1101001X4补补=1 0010111X3=+1101001X3补补=0 110100

50、1符号位符号位符号位符号位符号位符号位符号位符号位47补码运算规那么补码运算规那么v 运算规那么:补码的符号位和数值一起参加运算运算规那么:补码的符号位和数值一起参加运算;假设符号位产生了进位,那么将进位舍弃。;假设符号位产生了进位,那么将进位舍弃。v X+Y补补= X补补+ Y补,补,X-Y补补=X补补+-Y补补v 【例【例1.21】 X=+1101, Y =+0101,求,求X+Y 补补v 得得 X+Y补补= X补补+ Y补补= 0 10010 符号位为符号位为“0,说明和为正数,说明和为正数, 那么那么X+Y=(+10010)2=(+18)10补码加法流程图补码加法流程图XX补补和和YY

51、补补的符号位同的符号位同样参加运算样参加运算符号位符号位解:由于解:由于X=(+1101)2 =(+13)10, Y =(+0101) 2 =(+5)10 ,13+5=18,所以必须用有效数字为,所以必须用有效数字为5位的二进制数才能位的二进制数才能表示和,再加上表示和,再加上1位符号位,那么采用位符号位,那么采用6位的二进制补码位的二进制补码进行运算。进行运算。X补补=0 01101, Y补补=0 00101,X补补+ Y补补=0 01101 + 0 00101 =0 1001048异号补码的加法运算举例异号补码的加法运算举例v 【例例1.22】 X=-1101, Y =+0101,求,求X

52、+Y 补补 得得 X+Y补补= X补补+ Y补补= 1 11000。 分析结果的正确性:符号位为分析结果的正确性:符号位为“1,说明和为负数,按,说明和为负数,按照由真值求补码的逆过程,将照由真值求补码的逆过程,将 X+Y补的数值局部补的数值局部11000末位减末位减1,得,得10111;然后按位取反,得到;然后按位取反,得到X+Y的数值局部的数值局部为为01000;由此可知真值;由此可知真值X+Y=(-01000)2=(-8)10。说明补。说明补码运算的结果是正确的。码运算的结果是正确的。 解:由于解:由于X=(-1101)2 =(-13)10, Y =(+0101) 2 =(+5)10 ,

53、-13+5=-8,所以,所以用有效数字为用有效数字为4位的二进制数即能表示和。但一般地,进行补码加法运位的二进制数即能表示和。但一般地,进行补码加法运算的二进制数有效位数应比原二进制数的位数算的二进制数有效位数应比原二进制数的位数n多多1位,才能确保任何位,才能确保任何一个一个n位二进制数的补码加法运算的结果不致溢出。再加上位二进制数的补码加法运算的结果不致溢出。再加上1位符号位位符号位,那么这里也采用,那么这里也采用6位的二进制补码进行运算。位的二进制补码进行运算。 X补补= 1 01101 补补=1 10011, Y补补= 0 00101 补补=0 00101, X补补+ Y补补=1 10

54、011 + 0 00101 = 1 1100049补码的减法运算补码的减法运算v 引入补码后,可将数字系统的减法运算用补码加法实现引入补码后,可将数字系统的减法运算用补码加法实现比原码运算简单,无需使用数值比较电路和减法运比原码运算简单,无需使用数值比较电路和减法运算电路算电路简化了运算器的电路结构!简化了运算器的电路结构!v 补码运算也比反码运算简单,无需作进位判别,也无需补码运算也比反码运算简单,无需作进位判别,也无需作循环进位计算作循环进位计算简化了电路设计,提高了运算速度简化了电路设计,提高了运算速度v 这正是绝大多数计算机中采用补码的原因这正是绝大多数计算机中采用补码的原因丢掉最高位

55、的丢掉最高位的 “1,即得,即得X-Y补补= (0 01000)2。补码减法流程图补码减法流程图v 补码的减法运算补码的减法运算:由:由X补补和和Y补补求求X-Y补补v 【例例1.23】 X=+1101,Y =+0101,求,求X-Y补补解:采用解:采用6位的二进制补码进行运算位的二进制补码进行运算 X补补=0 01101, -Y补补=1 00101补补=1 11011 , X-Y补补=X补补+ -Y补补=0 01101 + 1 11011 =“1 0 0100050【例【例1.151.15】的补码运算例如】的补码运算例如【例】设【例】设X =+ 101 1101,Y = + 001 1010

56、,求,求Z=X-Y。解:解:3补码运算补码运算 Z补补=X-Y补补= X补补+ -Y补补 X补补=0 101 1101, -Y补补=- 001 1010 补补=1 110 0110 那么那么Z补补= X补补+ -Y补补= 0 100 0011, 其真值为其真值为Z=+ 100 0011 0 101 1101 + 1 110 0110 (1) 0 100 0011 舍弃舍弃v 结论:补码运算求得的真值与采用原结论:补码运算求得的真值与采用原码运算或反码运算求得的真值完全相码运算或反码运算求得的真值完全相同,但运算过程简单得多!同,但运算过程简单得多!运算运算器的电路结构简单;运算速度快器的电路结

57、构简单;运算速度快51补码的加减运算举例补码的加减运算举例v 【例【例1.24】 采用二进制补码求采用二进制补码求13+10、13-10、-13+10、-13-10,并分,并分析运算结果的正确性。析运算结果的正确性。v 解:解:13、10用用4位二进制数表示即可,但考虑到位二进制数表示即可,但考虑到2个个4位二进制数的和的位二进制数的和的大小可能为大小可能为5位二进制数,所以加数用有效数字为位二进制数,所以加数用有效数字为5位的二进制数表示,位的二进制数表示,再加上再加上1位符号位,那么一律采用位符号位,那么一律采用6位的二进制补码加法进行运算。位的二进制补码加法进行运算。将两个加数的符号位与

58、来自最高有效数字位的进位相加,得将两个加数的符号位与来自最高有效数字位的进位相加,得到的结果舍弃产生的进位就是和的符号。到的结果舍弃产生的进位就是和的符号。 0 01101 + 0 01010 0 10111+13+10+23 0 01101 + 1 10110 (1) 0 00011+13- 10+ 3舍弃舍弃和的符号和的符号(+13)10的二进制补码的二进制补码=0 01101补补=0 01101,(+10)10的二进制补码的二进制补码=0 01010补补=0 01010,(-13)10的二进制补码的二进制补码 =1 01101补补=1 10011,(-10)10的二进制补码的二进制补码

59、=1 01010补补=1 10110。52补码的加减运算举例续补码的加减运算举例续 1 10011 + 0 01010 1 11101-13+10- 3 1 10011 + 1 10110 (1) 1 01001-13-10-23舍弃舍弃和的符号和的符号两个同符号数相加时,其绝对值之和不可超过有效数字两个同符号数相加时,其绝对值之和不可超过有效数字位所能表示的最大值,否那么会得出错误的计算结果!位所能表示的最大值,否那么会得出错误的计算结果!u得得 (-13-10)10补补= (-13)10补补+ (-10)10补补= (1 01001)2 。u分析此结果的正确性:符号位为分析此结果的正确性:

60、符号位为“1,说明和为负数。按照由真值求,说明和为负数。按照由真值求补码的逆过程,将补码的逆过程,将 X+Y补的数值局部补的数值局部01001末位减末位减1,得,得01000;然;然后按位取反,得到后按位取反,得到X+Y的数值局部为的数值局部为10111。u 由此可知真值由此可知真值X+Y=(- 10111)2=(-23)10。u 说明此补码运算的结果是正确的。说明此补码运算的结果是正确的。53原码、反码和补码总结原码、反码和补码总结v 在写一个二进制数的原码、反码和补码在写一个二进制数的原码、反码和补码时,首先要明确总字长为多少,且最高时,首先要明确总字长为多少,且最高位为符号位。位为符号位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论