《计算机原理》课件第2章.ppt

上传人(卖家):momomo 文档编号:7944854 上传时间:2024-09-07 格式:PPT 页数:137 大小:689.50KB
下载 相关 举报
《计算机原理》课件第2章.ppt_第1页
第1页 / 共137页
《计算机原理》课件第2章.ppt_第2页
第2页 / 共137页
《计算机原理》课件第2章.ppt_第3页
第3页 / 共137页
《计算机原理》课件第2章.ppt_第4页
第4页 / 共137页
《计算机原理》课件第2章.ppt_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、第2章 计算机中数据的表示第第2章章 计算机中数据的表示计算机中数据的表示2.1 进位计数制及其相互转换2.2 定点数的表示2.3 浮点数的表示2.4 非数值数据的表示2.5 数据校验码关联习题 第2章 计算机中数据的表示2.1 进位计数制及其相互转换进位计数制及其相互转换2.1.1 进位计数制进位计数制进位计数制是一种按进位进行计数的制式。在日常工作与生活中,我们习惯使用十进制数,而计算机内部只能识别二进制数,但在程序设计时,数据往往用十进制数或十六进制数表示,而很少用二进制数,因为用二进制数表示数据或地址时,位数太长,书写不方便,易出错。进位计数制具有以下两方面特征:基数R(Radix):

2、是指进制数中数码所允许取值的个数,且计数规则是“逢R进一”。位权W(Weight):是指基数R的i次幂(Ri),表示进制数中第i位的位权。第2章 计算机中数据的表示1十进制数十进制数(Decimal)十进制数是我们日常工作生活中最常用的数,数中的任一数码di0,1,2,9,因此十进制数的基数为10,且逢十进一;十进制数的位权为10i。任何一个十进制数都可以按下式写成一个按权展开的多项式和的形式:D=dndn-1d1d0.d-1d-m =dn10n+dn-110n-1+d1101+d0100+d-110-1+d-m10-m=di10i(2-1)十进制数的后缀为D,可省略。如78D、179.26D

3、可写做78、179.26。mni第2章 计算机中数据的表示2二进制数二进制数(Binary)二进制数中的任一数码bi0,1,因此二进制数的基数为2,且逢二进一;二进制数的位权为2i。任何一个二进制数都可以按下式写成一个按权展开的多项式和的形式:B=bnbn-1b1b0.b-1b-m =bn2n+bn-12n-1+b121+b020+b-12-1+b-m2-m+b-m2-m =bi2i (2-2)二进制数的后缀为B,如1001B、10011101.1101B。mni第2章 计算机中数据的表示3十六进制数十六进制数(Hexadecimal)十六进制数中的任一数码hi0,1,2,9,A,B,C,D,

4、E,F,因此十六进制数的基数为16,且逢十六进一;十六进制数的位权为16i。任何一个十六进制数都可以按下式写成一个按权展开的多项式和的形式:H=hnhn-1h1h0.h-1h-m=hn16n+hn-116n-1+h1161+h0160+h-116-1+h-m16-m =hi16i(2-3)mni第2章 计算机中数据的表示十六进制数的后缀为H,如23AH、9C78.1B3H等,AF相当于十进制数的1015。为了区分十六进制数和标识符(标号、变量等),当十六进制数首位为AF时,其前必须加“0”,如0F08H、0C57.2H。第2章 计算机中数据的表示2.1.2 进位计数制的相互转换进位计数制的相互

5、转换1二进制数与十进制数的转换(1)二进制数转换为十进制数。直接按式(2-1)展开并求和即可。【例例2-1】将101110.101B转换为十进制数。解解:101110.101B=125+024+123+122+121+020+12-1+02-2+12-3=46.625第2章 计算机中数据的表示(2)十进制数转换为二进制数。十进制数转换为二进制数的方法有两种:直接法和查表法。直接法:对于整数部分采用“除2取余法”,直到商为零,而余数(由低位到高位)即为转换成的二进制数整数部分;对于小数部分采用“乘2取整法”,而积的整数部分(由高位到低位)即为转换成的二进制数小数部分。最后将转换结果合起来便得到相

6、应的二进制数。第2章 计算机中数据的表示【例例2-2】将25.696D转换为二进制数。解解:对整数部分,采用“除2取余法”,计算如下:因此 25D=11001B第2章 计算机中数据的表示对于小数部分,采用“乘2取整法”,计算如下:因此0.696D0.10110B所以25.696D11001.10110B第2章 计算机中数据的表示查表法:利用十进制与二进制数对照表,把十进制数分解成2i多项式和的形式,然后查表求得对应的二进制数。十进制转换为二进制数对应关系如表2-1所示。第2章 计算机中数据的表示表表2-1 十进制数与十进制数与2的整次幂之间的对应关系的整次幂之间的对应关系具体方法:把十进制数(

7、整数和小数)分解成2的整次幂项的和,对于出现2的整次幂项相应的位置数码取“1”,否则取“0”。第2章 计算机中数据的表示【例例2-3】将133.625D转换为二进制数。解:133.625D=128+4+1+0.5+0.125=27+22+20+2-1+2-3 =10000101.101B第2章 计算机中数据的表示2二进制数与十六进制数之间的转换二进制数与十六进制数之间的转换由于四位二进制数的编码与一位十六进制数的数码之间存在着一一对应的关系,如表2-2所示,因此,二进制数与十六进制数之间的转换十分简单、方便。第2章 计算机中数据的表示表表2-2 二进制数与十六进制数之间的对应关系二进制数与十六

8、进制数之间的对应关系(1)二进制数转换为十六进制数。以小数点为分界线,分别向左、向右按四位进行分组,不足四位者,在最前面或最后面补0,使之成为四位,然后,每四位按表2-2的对应关系用一位十六进制数来表示。第2章 计算机中数据的表示【例例2-4】将1111000111.10011B、110110001101B分别转换为十六进制数。解解:1111000111.10011B=0011 1100 0111.1001 1000B=3C7.98H110110001101B=1101 1000 1101B=D8DH第2章 计算机中数据的表示(2)十六进制数转换为二进制数。每一位十六进制数按表2-2的对应关系

9、转换成四位的二进制数即可,小数点位置不变。【例例2-5】将3F.75H转换为二进制数。解解:3F.75H=0011 1111.0111 0101B=111111.01110101B 第2章 计算机中数据的表示3十进制数与十六进制数之间的转换十进制数与十六进制数之间的转换(1)十六进制数转换为十进制数。直接按式(2-3)展开并求和即可。【例例2-6】将7B9.62H转换为十进制数。解解:7B9.3CH=7162+11161+9160+316-1+1216-2=1977.234375D 第2章 计算机中数据的表示(2)十进制数转换为十六进制数。采用类似十进制数转换为二进制数的方法,对于整数部分采用

10、“除16取余法”,直到商为零,而余数(由低位到高位)即为转换成的十六进制数整数部分;对于小数部分采用“乘16取整法”,而积的整数部分(由高位到低位)即为转换成的十六进制数小数部分。最后将转换结果合起来便得到相应的十六进制数。这种方法因乘、除16比较复杂,一般采用下面的间接方法。第2章 计算机中数据的表示【例例2-7】将105.75D转换为十六进制数。解解:105.75D=1101001.11B=01101001.1100B=69.CH第2章 计算机中数据的表示2.2 定点数的表示定点数的表示2.2.1 符号的表示符号的表示计算机本身无法识别数据的符号,即正号(+)和负号(-),为了让计算机能够

11、识别数的符号,必须用“0”和“1”来表示。因此规定:数据字的最高位为符号位,并且用“0”表示正(+),用“1”表示负(-)。于是一个数据字的书写形式和机器内的存储形式存在差异,为了区别这种不同,我们把书写形式(正、负符号加绝对值)的数据称为真值,机器内的存储形式(符号位加二进制数值)的数据称为机器数。第2章 计算机中数据的表示一个数据的机器数究竟采用多少位表示,与机器的字长有关,若机器的字长是16位,则表示数据的机器数也是16位。机器数有一定的长度限制,故相应的真值便会存在一定的范围要求,以8位机为例,8位的机器数相应的真值范围为-128+127。第2章 计算机中数据的表示2.2.2 小数点的

12、表示小数点的表示数据中的小数点在计算机中有两种表示方法,即定点表示法和浮点表示法。1定点表示法定点表示法定点表示法所表示的数据为定点数。定点数指小数点在数中的位置是固定不变的。因此,计算机中数的小数点不用表示,或者隐含表示,它不占用存储空间。下面以16位机为例来说明定点表示法。1)定点整数小数点被固定在数值位的最低有效位之后,其格式如下:第2章 计算机中数据的表示第2章 计算机中数据的表示2)定点小数小数点被固定在符号位与尾数之间,其格式如下:定点整数表示的数只能是整数,而定点小数所表示的数只能是小数。在本书中,我们更侧重于定点小数。第2章 计算机中数据的表示2浮点表示法浮点表示法定点表示法难

13、以表示数值很大或很小的数据,为了表示更大范围的数据,数学上通常采用科学计数法,即将数据表示成三部分:第一部分表示数据的符号;第二部分表示数据的有效值;第三部分表示数据中的小数点位置。改变了第三部分的数值,相当于改变了小数点的位置,这种表示小数点的方法称为浮点表示法。浮点表示法所表示的数据是浮点数,浮点数x通常表示为x=(1)SMRe第2章 计算机中数据的表示其中:S(Sign)符号,0表示正(+),1表示负(-);M(Mantissa)尾数,为定点小数,表示浮点数x的有效数字,决定浮点数的精度;e(exponent)阶码,为定点整数,表示浮点数x中小数点的实际位置,是影响浮点数大小的主要因素,

14、即它决定了浮点数的表示范围;R(Radix)基数,是一个系统中约定的常数,通常取值为2。由于R是一个常数,所以浮点数在计算机中的存储形式为S、E、M,E是阶码的移码形式。由此可见,浮点数的表示又归结到定点整数和定点小数表示问题。关于浮点数的表示更详细的内容将在2.3节中讨论。第2章 计算机中数据的表示2.2.3 机器数形式机器数形式对于数据定点表示的符号问题,计算机应如何处理符号位?符号位能否同数值位一样参加运算?为了妥善处理这个问题,下面以n位机为例,介绍几种定点数的机器数形式(若机器数为n位,其中符号位占1位,数值位占n-1位,而小数点隐含)。第2章 计算机中数据的表示1原码原码原码是一种

15、最简单、最直观的机器数表示形式,它与真值的形式最为接近。1)原码的定义设x为n位的二进制数据,式(2-4)和式(2-5)分别给出了x为定点小数0.x1x2xn-1和x为定点整数x1x2xn-1的原码定义。定点小数原码的定义:x原=|x|1x1x0 x+(1-2-(n-1)-(1-2-(n-1)x0(2-4)第2章 计算机中数据的表示定点整数原码的定义:x原=xxn 120 x+(2n-1-1)-(2n-1-1)x0(2-5)第2章 计算机中数据的表示【例例2-8】已知二进制数的真值x,求x原。x=+0.0010110 x=-0.0010110 x=+00010110 x=-00010110解解

16、:由定义可得 因为x0,所以x原=x=0.0010110 因为x0,所以x原=1-x=1.0010110 因为x0,所以x原=x=00010110 因为x0,所以x原=27-x=10010110第2章 计算机中数据的表示2)原码所表示的数据大小以n位定点小数为例,分析原码所表示的数据范围,如下所示:n位定点正小数的原码0.00 0+00.11 1+(1-2-(n-1)n位定点负小数的原码1.00 0-01.11 1-(1-2-(n-1)第2章 计算机中数据的表示所以,n位定点小数的原码所表示的数据范围为-(1-2-(n-1),+(1-2-(n-1)。0的原码形式有两种:+0的原码为0.00 0

17、,-0的原码为1.000。第2章 计算机中数据的表示3)原码的运算特点(1)原码的移位。原码移位规则:符号位保持不变,数值位进行左移或右移,移出后出现的空位进行补0。【例例2-9】已知以下两个x原,求2x原、x原。x原=0.0101001 x原=1.0101001解解:2x原=0.1010010 x原=0.0010100 2x原=1.1010010 x原=1.0010100 2121第2章 计算机中数据的表示(2)原码的加减运算。原码的加减运算较复杂,它不仅要判断两个数的符号,确定是进行加法还是进行减法运算,还要比较两个数的绝对值大小来决定运算结果的符号。可见,原码不便于进行加减运算,对原码进

18、行符号位处理的硬件较复杂。为了简化运算,人们提出了机器数的补码形式,从此,不再分别处理符号位和数值位,而把符号位作为数值的一部分参与运算,并能将减法运算转换成加法运算,从而简化了硬件及结构,降低了成本。第2章 计算机中数据的表示2补码补码1)互补数在计数制中,为了简化计数,常采用一种计满归零的方法。例如钟表的计时,计满12归0,即12点=0点,于是有:13点=1点,14点=2点,23点=11点,24点=0点。因此,钟表是以12为模的计数方式,其数学表达式为12=0 (mod 12)对于钟表的表盘,若时针指向12点,顺时针方向拨时针8格,即表示的时间为8点,而按逆时针方向拨时针4格,表示的时间仍

19、为8点,因此,两种不同方向的拨法其结果是一样的,于是,8和-4是模12的互补数,记为-4=8 (mod 12)。对于任意一个数x,若模为M,则x补可由下式进行计算:x补=M+x (mod M)(2-6)第2章 计算机中数据的表示 由式(2-6)可知:(1)当x0时,M+xM,把M丢掉,x补=x,即正数的补数等于它本身;(2)当x0时,x补=M+x=M-|x|即负数的补数等于模与该数绝对值之差。第2章 计算机中数据的表示【例例2-10】对于二进制数x,求在模M=2的条件下的x补。x=+0.0101001 x=-0.0101001解解:因为x0,所以x补=2+x=x=0.0101001 因为x0,

20、所以x补=2+x=2-|x|=2-0.0101001=1.1010111 第2章 计算机中数据的表示2)补码的定义补码实际上是对模的补数,由于机器字长的限制,数据在计算机中的运算是有模运算。设x为n位二进制数据,式(2-7)和式(2-8)分别给出了x为定点小数0.x1x2xn-1和x为定点整数x1x2xn-1的补码定义。第2章 计算机中数据的表示定点小数补码的定义:x补|x|1x2x0 x+(1-2-(n-1)-1x0(mod 2)(2-7)定点整数补码的定义:x补x2xn0 x2n-1-1-2n-1x0(mod 2n)(2-8)第2章 计算机中数据的表示【例例2-11】已知以下x,求x补。x

21、=+0.0010110 x=-0.0010110 x=+00010110 x=-00010110解解:由定义可得因为x0,所以x补=x=0.0010110因为x0,所以x补=28+x=1.1101010因为x0,所以x补=x=00010110因为x0,所以x补=28+x=11101010 第2章 计算机中数据的表示3)补码所表示的数据大小以n位定点小数的补码为例,分析补码所表示的数据范围,如下所示:所以n位定点小数的补码所表示的数据范围为-1,+(1-2-(n-1)。小数0的补码形式只有一种:+0补=0.00 0,-0补=2+0.000=0.00 0。第2章 计算机中数据的表示4)补码的运算特

22、点(1)x补的移位。补码的移位规则:补码左移时,符号位保持不变,数值位进行左移,最低位出现的空位进行补0;补码右移时,符号位保持不变,数值位进行右移,最高位出现的空位填补符号位。第2章 计算机中数据的表示【例例2-12】已知以下x补,求2x补和x补。x补=0.0101001 x补=1.0101001解解:2x补=0.1010010 x补=0.0010100 2x补=1.1010010 x补=1.00101002121第2章 计算机中数据的表示在补码左移过程中,注意不要把高位的数值位移出,否则将会出错。例如,将8位定点正小数补码x补=0.1010011进行左移时,需要将最高数值位的1移出,如果将

23、1移入符号位,正数的补码变成了负数的补码,造成符号出错;如果将1丢掉,又会失去最高位的有效数值而导致出错。同理,对于8位定点负小数补码x补=1.0010011进行左移时,也会出现同样的错误。第2章 计算机中数据的表示(2)x补与x原的转换。若x0,则x原=x补。若x0,则将x原除符号位以外的各位取反后,再在最低位上加1,即得到x补;反之,将x补除符号位以外的各位取反后,再在最低位上加1,即得到x原。第2章 计算机中数据的表示【例例2-13】已知以下x原,求x补。x原=0.0010110 x原=1.0010110 x原=00010110 x原=10010110解解:由定义可得 因为x0,所以x补

24、=x原=0.0010110 因为x0,所以x补=1.1101010 因为x0,所以x补=x原=00010110 因为x0,所以x补=11101010 第2章 计算机中数据的表示从【例2-13】的结果我们还可以看出以下规律:当x0时,保持原码的符号位不变,从原码的最低位开始向高位扫描,在遇到第一个1之后,保持该位1和比它低的各位不变,将其余位取反,即得到x原对应的补码。第2章 计算机中数据的表示【例例2-14】已知以下x补,求x原。x补=0.0010110 x补=1.0010110 x补=00010110 x补=10010110解解:由定义可得 因为x0,所以x原=x补=0.0010110 因为

25、x0,所以x原=1.1101010 因为x0,所以x原=x补=00010110 因为x0,所以x原=11101010第2章 计算机中数据的表示(3)x补与-x补的关系。已知x补求-x补称为对x补求补或变补。其规则是:将x补的各位取反(包括符号位),然后在最低位加1,即得到-x补;反之亦然。【例例2-15】已知以下x补,求-x补。x补=0.0010110 x补=1.0010110 x补=00010110 x=10010110解解:由定义可得-x补=1.1101010-x补=0.1101010-x补=11101010-x补=01101010 第2章 计算机中数据的表示3反码反码反码实质上是一种特殊

26、的补码,其特殊性在于反码的模比补码的模小2n-1。1)反码的定义设x为n位的二进制数据,式(2-9)和式(2-10)给出了x为定点小数0.x1x2xn-1和x为定点整数x1x2xn-1的反码定义。第2章 计算机中数据的表示定点小数反码的定义:xxxn)22()1(反0 x+(1-2-(n-1)-(1-2-(n-1)x0 (2-9)定点整数反码的定义:xxxn)12(反0 x2n-1-1-(2n-1-1)x0(mod(2-2-(n-1)(mod(2n-1)(2-10)第2章 计算机中数据的表示【例例2-16】已知以下x,求x反。x=+0.0010110 x=-0.0010110 x=+00010

27、110 x=-00010110解解:由定义可得 x反=0.0010110 x反=1.1101001 x反=00010110 x反=11101001第2章 计算机中数据的表示2)反码所表示的数据大小以n位定点小数为例,分析反码所表示的数据范围,如下所示:所以n位定点小数的反码所表示的数据范围为-(1-2-(n-1),+(1-2-(n-1)。小数0的反码形式有两种:+0的反码为0.00 0,-0的反码为1.11 1。第2章 计算机中数据的表示4移码移码移码通常用来表示浮点数的阶码e。我们知道阶码是整数,若采用定点整数补码形式表示,补码的符号位可以作为数值位,这样一来,负数补码的值总大于正数补码的值

28、,在进行对阶时,需要比较两个浮点数的阶码大小。因为比较起来不太直观和方便,因此人们提出了移码形式。浮点数阶码e的移码形式记为“E”。移码E实质上是将阶码e的真值映射到一个正数域,这样移码E的大小可以直观地反映出真值的大小,便于比较。若阶码e的真值范围为-128,+127,则E=128+e,移码E的范围是0,255。第2章 计算机中数据的表示1)移码的定义设x为n位的二进制数据,式(2-11)给出了x为定点整数x1x2xn-1的移码定义。定点整数移码的定义如下:x移=2n-1+x -2n-1x2n-1-1 (2-11)由式(2-11)可知,移码是把真值x在数轴上正向平移了2n-1,所以,移码也称

29、为增量或余码。第2章 计算机中数据的表示2)移码所表示的数据大小对于n位定点整数的移码,其表示的数据范围如下所示:所以,n位定点整数的移码所表示的数据范围为0,2n-1,0的移码形式只有一种,即 100 0。第2章 计算机中数据的表示3)移码与补码的关系(1)当0 x2n-1-1时,因为x补=x,x移=2n-1+x,所以x移=2n-1+x补;(2)当-2n-1x0时,因为x补=2n+x,x移=2n-1+x,所以x移=2n-1+x补-2n=x补-2n-1。第2章 计算机中数据的表示【例例2-17】已知以下二进制数x,求x补和x移。x=+00101001 x=-00101001解解:因为x0,所以

30、x补=00101001 x移=10101001 因为x0,所以x补=11010111 x移=01010111 第2章 计算机中数据的表示2.3 浮点数的表示浮点数的表示2.3.1 浮点数的格式浮点数的格式由浮点表示法可知,计算机中的一个浮点数由阶码E、尾数M和符号S三部分组成。其中,E为定点整数的移码形式,M为定点小数的补码形式,S为数符。由于这三部分所占的位置和长度不同,浮点数的格式也不相同,为此,美国IEEE(电气电子工程师协会)提出了一个从系统结构角度支持浮点数的表示方法,称为IEEE 754标准,是目前计算机普遍采用的标准。第2章 计算机中数据的表示132位单精度浮点数格式位单精度浮点

31、数格式(IEEE 754标准标准)32位单精度浮点数格式如下所示:其中:S表示数符,占1位,为0表示“+”,为1表示“-”;E表示阶码e的移码形式,占8位,包括1位阶符和7位数值,将阶码e的真值平移127便转换成移码E,即E=127+e,移码E的取值范围为1,254,0和255用于表示特殊含义的数值;M表示尾数,占23位,由于尾数的规格化要求,IEEE 754标准约定小数点左边隐含一位“1”,从而使尾数的实际有效位为24位,即尾数的有效值为1.M。第2章 计算机中数据的表示根据上述规定,32位单精度浮点数所表示的数值x为x=(-1)S 2E-1271.M(1)若E=0,且M=0,则x为0;(2

32、)若E=0,且M0,则x=(-1)S2-1271.M,为非规格化浮点数;(3)若1E254,则x=(-1)S2E-1271.M,为规格化浮点数;(4)若E=255,且M0,则x为“非数值”;(5)若E=255,且M=0,则x=(-1)S。值得注意的是:非规格化浮点数和0的尾数M前的隐含位是“0”,而不是“1”。第2章 计算机中数据的表示【例例2-18】将5/32和-69.625表示成IEEE 754单精度浮点数的格式。解解:5/32=0.00101B=1.01B2-3,按IEEE 754单精度浮点数的要求,因为x0,所以S=0。因为尾数的有效值为1.M,所以M=0100000000000000

33、0000000B。因为E=127+e,所以E=127+(-3)=124=01111100B5/32表示成IEEE 754单精度浮点数的格式如下:第2章 计算机中数据的表示 因为-69.625=-1000101.101B=-1.000101101B26所以S=1,M=00010110100000000000000B,E=127+6=133=10000101B,其浮点数格式如下:第2章 计算机中数据的表示【例例2-19】将IEEE 754单精度浮点数42E48000H转换成真值十进制数。解解:按IEEE 754定义的单精度浮点数格式单精度浮点数42E48000H可表示为 S=1,E=1000010

34、1B=133,M=11001001000000000000000B=0.78515625,其浮点数对应的真值为(-1)S 2E-1271.M=(-1)021331271.78515625 =1.7851562526 =114.25第2章 计算机中数据的表示264位双精度浮点数格式位双精度浮点数格式(IEEE 754标准标准)64位双精度浮点数格式如下所示:64位双精度浮点数所表示的数值x为x=(-1)S2E-10231.M第2章 计算机中数据的表示2.3.2 浮点数的规格化浮点数的规格化浮点数规格化的目的在于:一方面为了提高运算精度,尽可能占满尾数的位数,以保留更多的有效数字;另一方面保证了浮

35、点数的唯一性。例如,对于浮点数0.00101126,因为0.00101126=0.10110024=0.00000101129=所以同一个数0.00101126有多种表示,因而无法保证其唯一性。另外,如果规定尾数为6位,0.00000101129就成了0.00000129,从而丢掉了有效数字,降低了数的精度。对于基数R为2的浮点数,其规格化条件是:0.5|M|1。在计算机中,浮点数通常是以规格化形式存储和参加运算的。如果运算结果出现了非规格化浮点数,则必须对结果进行规格化处理。第2章 计算机中数据的表示2.3.3 浮点数的表示范围浮点数的表示范围当浮点数的格式被确定后,它所表示的数据范围也就确

36、定了。求浮点数的表示范围,实质上是分析出浮点数所表示的最大数及最小数。下面针对基数R为2的浮点数(阶码为m+1位(包括1位阶符),尾数为n+1位(包括1位数符),分别讨论不同形式的机器数所表示的规格化和非规格化的最大数及最小数。第2章 计算机中数据的表示1阶码和尾数均采用原码表示阶码和尾数均采用原码表示当阶码和尾数均采用原码表示时,典型浮点数的机器数和真值如表2-3所示。第2章 计算机中数据的表示表表2-3 阶码和尾数均用原码表示时机器数的规格化阶码和尾数均用原码表示时机器数的规格化和非规格化最大、最小数和非规格化最大、最小数第2章 计算机中数据的表示2阶码和尾数均采用补码表示阶码和尾数均采用

37、补码表示阶码和尾数均采用补码表示时,典型浮点数的机器数和真值如表2-4所示。第2章 计算机中数据的表示表表2-4 阶码和尾数均用补码表示时机器数的规格化阶码和尾数均用补码表示时机器数的规格化和非规格化最大、最小数和非规格化最大、最小数第2章 计算机中数据的表示3阶码和尾数分别采用移码和补码表示阶码和尾数分别采用移码和补码表示阶码和尾数分别采用移码和补码表示时,典型浮点数的机器数和真值如表2-5所示。第2章 计算机中数据的表示表表2-5 阶码用移码、尾数用补码表示时机器数的规格阶码用移码、尾数用补码表示时机器数的规格化和非规格化最大、最小数化和非规格化最大、最小数第2章 计算机中数据的表示2.3

38、.4 浮点数的机器零浮点数的机器零计算机在对浮点数进行处理的过程中,首先是判“0”,因为当一个浮点数是“0”时,运算可以简化。机器零是指如果一个浮点数的尾数为全0,则不论阶码为何值;或者如果一个浮点数的阶码小于它所能表示的最小值,则不论其尾数为何值,计算机都会把这种浮点数当做零看待。特别是当阶码用移码表示、尾数用补码表示时,如果阶码为它所表示的最小数-2m(阶码为m位)且尾数为0时,其阶码的移码形式全为0,尾数的补码形式也全为0,这时的浮点数的机器数形式也全为0,从而有利于简化机器的判0电路。第2章 计算机中数据的表示2.4 非数值数据的表示非数值数据的表示2.4.1 字符与字符串字符与字符串

39、字符和字符串是计算机中用得最多的非数值数据,人们利用字符和字符串编写程序、表达文字及各类信息,以便与计算机进行交流。为了使计算机硬件能够识别和处理字符,必须对字符按一定规则用二进制进行编码。第2章 计算机中数据的表示1ASCII码码ASCII码(American Standard Code for Information Interchange,美国标准信息交换码)是目前国际上广泛使用的字符编码。ASCII码为7位二进制编码,可表示128个字符,包括10个数字字符(09)、52个英文字母(大、小写各26个)、34个常用符号和32个控制字符(如数符NUL、回车符CR、换行符LF等)。表2-6所示

40、为ASCII编码。7位ASCII码用b6b5b4b3b2b1b0表示,其中b6b5b4为ASCII码的高3位,是字符所在表中列的编码;b3b2b1b0为ASCII码的低4位,是字符所在表中行的编码。第2章 计算机中数据的表示在计算机中,一个字符用一个字节表示,由于ASCII码只有7位,因此,表示字符的字节的最高位b7有以下用法:(1)b7置0,用于表示字符的ASCII码;(2)b7置1,用于表示汉字的编码;(3)b7用作奇偶校验位。第2章 计算机中数据的表示表表2-6 ASCII 码码 表表第2章 计算机中数据的表示2字符串字符串字符串是指连续的一串字符。由于一个字符占一个字节单元,所以字符串

41、在存储时要占连续的多个字节单元。至于存储顺序不同的机器可以有不同的规定,字符串中的字符既可以从低位字节向高位字节顺序存放,也可以从高位字节向低位字节顺序存放。第2章 计算机中数据的表示2.4.2 BCD码与十进制数码与十进制数18421BCD码码BCD(Binary Coded Decimal)码是对一位十进制数所进行的编码,其目的在于:一方面方便快捷地将十进制数转换成二进制形式的数据;另一方面直接实现对十进制数的运算。BCD码的编码方法有多种,较常用的有8421BCD码、2421BCD和余3码。常见的BCD码如表2-7所示。第2章 计算机中数据的表示表表2-7 常见常见BCD码码第2章 计算

42、机中数据的表示8421BCD码是4位二进制编码,“8421”是指4个位置的位权分别为8、4、2、1,有且只有10个编码。由于4位二进制的编码有且只有16个编码,所以8421BCD码与4位的二进制编码之间并不存在一一对应的关系。在对十进制数直接进行运算时,其结果可能会出现非8421BCD码,此时需要及时进行加6(0110)修正,否则运算的结果会出错。另外需要注意的是,BCD码是对一位十进制数所进行的编码,对于多位十进制数,则应用多个BCD码组合起来表示。例如十进制数147,对应的8421BCD码为0001 0100 0111。第2章 计算机中数据的表示2 十进制数十进制数1)非压缩型十进制数非压

43、缩型十进制数主要应用于显示、打印等非数值处理过程中,是将十进制数以字符串的形式进行表示,即把十进制数中的每一位数字以及数的正、负符号都当一个字符,用一个字节表示其ASCII码。根据数的符号(+、-)的ASCII码所存储的位置不同,非压缩型十进制数又可分为前分隔非压缩型十进制数和后嵌入非压缩型十进制数。(1)前分隔非压缩型十进制数。前分隔非压缩型十进制数的表示方法是:数的符号占一个字节,正号“+”的ASCII码为2BH,负号“-”的ASCII码为2DH,位于十进制数的数字位之前。第2章 计算机中数据的表示【例例2-20】采用前分隔非压缩型十进制数,写出十进制数+256和-1716在内存的存储形式

44、。解解:+256在内存的存储形式如下:第2章 计算机中数据的表示十进制数+256在内存中共占4个字节单元。-1716在内存的存储形式如下:十进制数-1716在内存中共占5个字节单元。第2章 计算机中数据的表示(2)后嵌入非压缩型十进制数。后嵌入非压缩型十进制数的表示方法是:数的符号不单独占一个字节,而是嵌入到最低位数字的编码中。其嵌入规则是:若数的符号为正号“+”,则最低位数字的ASCII码保持不变;若数的符号为负号“-”,则最低位数字的ASCII码加上40H。第2章 计算机中数据的表示【例例2-21】采用后嵌入非压缩型十进制数,写出十进制数+256和-1716在内存的存储形式。解解:+256

45、在内存的存储形式如下:十进制数+256在内存中共占3个字节单元-1716在内存的存储形式如下:十进制数-1716在内存中共占4个字节单元。第2章 计算机中数据的表示2)压缩型十进制数压缩型十进制数既能节省存储空间,又便于直接进行十进制运算,是被广泛采用的十进制数表示方法。此方法是用一个字节存放两位十进制数的BCD码,数的符号(+、-)占半个字节,并存放在最低位数字的BCD码之后。数的符号所占的半个字节规定为:“1100”表示正号(+),“1101”表示负号(-)。为了保证此表示方法不会出现只有半个字节的情况,规定压缩型十进制数数字个数和1位符号之和必须是偶数,否则,在最高位数字之前补一个数字0

46、。第2章 计算机中数据的表示【例例2-22】采用压缩型十进制数,写出十进制数+256和-1716在内存的存储形式。解解:+256在内存的存储形式如下:十进制数+256在内存中共占2个字节单元。-1716在内存的存储形式如下:十进制数-1716在内存中共占3个字节单元。第2章 计算机中数据的表示2.5 数数据据校校验验码码数据在存储和传送的过程中,难免出现错误。为了减少和避免错误的发生,一方面从硬件方面采取措施,提高硬件本身的抗干扰能力和可靠性;另一方面在数据编码上采取检错纠错的措施,使得机器能够自动发现错误,甚至能纠正错误。我们把这种具有检测错误或带有自动纠错能力的数据编码称为数据校验码。其原

47、理是在数据中加入一些校验位,组成数据校验码,通过检查数据校验码的合法性来判断是否出错或进行纠错。常用的数据校验码有奇偶校验码、海明校验码和循环冗余校验码(CRC)等。第2章 计算机中数据的表示2.5.1 奇偶校验码奇偶校验码奇偶校验码是一种最简单、最常用的校验码,被广泛应用于内存的读写校验和串行通信。1奇偶校验码的编码奇偶校验码的编码对于n位二进制数D=dn-1dn-2d1d0,添加一位校验位P,P的位置可以在数据D的最高位dn-1之前,也可以在数据D的最低位d0之后,并且P是数据D的函数,即P=f(D)。于是,n位数据D和1位校验位P便构成了一个n+1位的奇偶校验码。奇偶校验码根据PD之间的

48、函数不同,可分为偶校验和奇校验。第2章 计算机中数据的表示(1)偶校验(Even):加入一位校验位PEven后,使得n+1位的奇偶校验码中“1”的个数为偶数,因此,PEven=dn-1dn-2d1d0。(2)奇校验(Odd):加入一位校验位POdd后,使得n+1位的奇偶校验码中“1”的个数为奇数,因此,POdd=。EvenP第2章 计算机中数据的表示2奇偶校验码的校验奇偶校验码的校验发送端将一个奇偶校验码发送后,接收端需要对接收到信息进行校验,判断所接收到的数据是否有误,以决定其取舍。具体校验方法为:如果接收端接收到一个1的个数为偶数的奇校验码,或接收端接收到一个1的个数为奇数的偶校验码,则表

49、示接收端所接收的是一个有错的校验码。通过设置出错标志E(E=0,表示无误;E=1,表示有误)很容易实现校验。(1)偶校验的出错标志EEven:EEven=dn-1dn-2d1d0PEven。(2)奇校验的出错标志EOdd:E Odd=dn-1dn-2d1d0POdd。第2章 计算机中数据的表示3奇偶校验码的纠错能力奇偶校验码的纠错能力根据奇偶校验码的校验,可知奇偶校验码只能发现一位出错或奇数位同时出错,至于出错的位置,则是无法确定的,因此,且奇偶校验码无法实现纠错功能。尽管如此,由于一位出错的概率远远高于多位同时出错的概率,奇偶校验码能够满足一般可靠性的要求,因此,奇偶校验码一种最简单、最常用

50、的数据校验码,它被广泛应用于对存储器中数据的检查或传送数据的检查。第2章 计算机中数据的表示2.5.2 海明校验码海明校验码海明校验码是由Richard Hamming于1950年提出的,目前仍被广泛应用。它是在奇偶校验的基础上,通过合理增加校验位的位数来组成海明校验码的。它不仅能够实现发现多位出错,而且能够对一位出错进行自动纠正。第2章 计算机中数据的表示1海明校验码中校验位的位数海明校验码中校验位的位数设数据的位数为n,校验位的位数为k,则组成的海明校验码为n+k位。校验时,k位校验位的编码共有2k种状态,其中只有一种状态用来表示数据无误,其余2k-1种状态用来表示数据有措。由于海明校验码

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《计算机原理》课件第2章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|