《计算机组成原理》教程第2章数据的表示.ppt

上传人:peixunshi 文档编号:14852029 上传时间:2022-02-21 格式:PPT 页数:71 大小:264.01KB
返回 下载 相关 举报
《计算机组成原理》教程第2章数据的表示.ppt_第1页
第1页 / 共71页
《计算机组成原理》教程第2章数据的表示.ppt_第2页
第2页 / 共71页
《计算机组成原理》教程第2章数据的表示.ppt_第3页
第3页 / 共71页
《计算机组成原理》教程第2章数据的表示.ppt_第4页
第4页 / 共71页
《计算机组成原理》教程第2章数据的表示.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《《计算机组成原理》教程第2章数据的表示.ppt》由会员分享,可在线阅读,更多相关《《计算机组成原理》教程第2章数据的表示.ppt(71页珍藏版)》请在三一文库上搜索。

1、计算机组成原理第2章 数据的表示,内容,.数据的表示方法和转换.数的定点表示和浮点表示.十进制数的表示.数据传送方式和校验,数据的表示方法和转换,进位计数制(进制)进位计数制之间的转换,进位计数制,进位计数制:用少量的数字符号(也称数码),按先后次序把它们排成数位,由低到高进行计数,计满进位,这样的方法称为进位计数制。基数:进位制的基本特征数,即所用到的数字符号个数。例如10进制 :0-9 十个数码表示,基数为10权:进位制中各位“1”所表示的值为该位的权。常见的进位制:2,8,10,16进制。,十进制(Decimal),基数:10符号: 0,1,2,3,4,5,6,7,8,9计算规律:“逢十

2、进一”或“借一当十”并列表示法:N10=dn-1dn-2 d1d0d-1d-2 d-m 十进制数的多项式表示:N10=dn-1 10n-1 + dn-2 10n-2 + d1 101 + d0 100 + d-1 10-1 + d-2 10-2 + d-m 10-M m,n为正整数,其中n为整数位数;m为小数位数。di表示第i位的系数,10i称为该位的权,10为基值.,例如: 一个十进制数123.45的表示,123.45 =1102+ 2101+ 3 100 + 410-1+ 510-2注:等式左边为并列表示法,等式右边为多项式表示法,二进制(Binary),基数: 2符号: 0,1计算规律:

3、逢二进一或借一当二二进制的多项式表示:N2=dn-1 2n-1 + dn-2 2n-2 + d1 21 + d0 20 + d-1 2-1 + d-2 2-2 + d-m 2-m其中n为整数位数;m为小数位数。 di表示第i位的系数,2i称为该位的权,2为基值.,十六进制(Hexadecimal),基数: 16符号: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F计算规律:逢十六进一或借一当十六十六进制的多项式表示:N16=dn-1 16n-1 + dn-2 16n-2 + d1 161 + d0 160 + d-1 16-1 + d-2 16-2 + d-m 16-m 其中n

4、为整数位数;m为小数位数。 di表示第i位的系数,16i称为该位的权.,例如十六进制数 (2C7.1F)16的表示(2C7.1F)16=2 162+ 12 161+ 7 160+ 1 16-1+ 15 16-2,进位计数制之间的转换,R进制转换成十进制的方法十进制转换成二进制方法二进制和八进制之间的转换二进制和十六进制之间的转换,R进制转换成十进制的方法,按权展开法: 先写成多项式,然后计算十进制结果.N= dn-1dn-2 d1d0d-1d-2 d-m =dn-1 Rn-1 + dn-2 Rn-2 + d1 R1 + d0 R0 + d-1 R-1 + d-2 R-2 + d-m R-m,例

5、,例如: 写出(1101.01)2,(237)8,(10D)16的十进制数(1101.01)2=123+122+021+120+ 02-1+12-2 =8+4+1+0.25=13.25(237)8=282+381+780 =128+24+7=159(10D)16=1162+13160=256+13=269,十进制转换成二进制方法,一般分为两个步骤:整数部分的转换除2取余法(基数除法)减权定位法小数部分的转换乘2取整法(基数乘法),(1)除基取余法,2 327 余数,2 163 1,2 81 1,2 40 1,2 20 0,2 10 0,2 5 0,2 2 1,2 1 0,2 0 1,(327)

6、10 =(101000111) 2,除基取余法:把给定的数除以基数,取余数作为最低位的系数,然后继续将商部分除以基数,余数作为次低位系数,重复操作,直至商为0。例如:用基数除法将(327)10转换成二进制数,(2)减权定位法,将十进制数依次从二进制的最高位权值进行比较,若够减则对应位置1,减去该权值后再往下比较,若不够减则对应位为0,重复操作直至差数为0。例如:将 (327)10 转换成二进制数256327512327-256=71 171128 071-64 =7 1732 0716 078 07-4 =3 1 3-2=1 11-1=0 1,乘基取整法,例如:将(0.8125) 10 转换成

7、二进制小数. 整数部分2 0.8125=1.625 12 0.625=1.25 12 0.25=0.5 02 0.5=1 1(0.8125) 10 =(0.1101) 2,乘基取整法:把给定的十进制小数乘以2,取其整数作为二进制小数的第一位,然后取小数部分继续乘以2,将所的整数部分作为第二位小数,重复操作,直至得到所需要的二进制小数。,小数部分的转换,例如: 将(0.2) 10 转换成二进制小数,整数部分0.2 2 = 0.4 00.4 2 = 0.8 00.8 2 = 1.6 10.6 2 = 1.2 10.2 2 = 0.4 00.4 2 = 0.8 00.8 2 = 1.6 10.6 2

8、 = 1.2 1 (0.2) 10 = 0.001100110011. 2,十进制混合小数转换二进制数,由整数与小数组成的十进制数,转为二进制数的方法:先将整数部分用除取余法转换为二进制数,再将小数部分用乘取整法转为二进制数的小数部分,再将得到的二进制整数部分与小数部分相加,得到的和即是相应的二进制数据.如:(327.8125)10=101000111.1101 327= 101000111 0.8125= 0.1101,二进制与八进制、十六进制之间的转换,二 八 二 十六 000 0 0000 0 1000 8001 1 0001 1 1001 9010 2 0010 2 1010 A011

9、 3 0011 3 1011 B100 4 0100 4 1100 C101 5 0101 5 1101 D110 6 0110 6 1110 E111 7 0111 7 1111 F,二进制转换成八进制,例:(10110111 .01101) 2,(10110111.01101) 2 =(267.32)8,八进制: 2 6 7 . 3 2,二进制: 010 ,110 , 111 . 011 , 010,二进制: 10 ,110 , 111 . 011 , 01,低位补零,凑足三位,高位补零,凑足三位,八进制转换二进制,方法:直接将一位八进制数用三位二进制数表示即可。例如: (123.46 )

10、 8=(001,010,011 .100,110 ) 2 =(1010011.10011)2,二进制转换成十六进制,例:(110110111 .01101) 2转换成16进制。,(10110111.01101) 2 =(1B7.68)16,十六进制: 1 B 7 . 6 8,二进制: 0001 ,1011 , 0111 . 0110 ,1000,二进制: 1 ,1011 , 0111 . 0110 ,1,低位补零,凑足四位,高位补零,凑足四位,十六进制转换成二进制,方法:一位十六进制数用四位二进制数表示。例如: (7AC.DE ) 16 =(0111,1010,1100.1101,1110 )

11、 2 =(11110101100 .1101111 )2,二进制的优点(见书),运算规则简单,易于实现数的状态简单节省设备,判断方便,无符号数和有符号数(补充),无符号数vs.有符号数,无符号数:不带符号位的数在数据处理的过程中,如不需要设置符号位可用全部字长来表示数值大小。如8位无符号数的取值范围是0255(2-)。可用于计数、地址指针等有符号数:带符号位的数若有16位寄存器无符号数:065535一位符号位的有符号数:3276832767,带符号数的编码,真值vs.机器数真值:正、负号加某进制数绝对值的形式称为真值。如二进制真值: X=+1011 y=-1011机器数:符号数码化的数称为机器

12、数如 :X=01011 Y=11011,机器数的表示方法,一旦符号数字化以后,符号和数值就形成了一种新的编码。在运算过程中,符号位能否和数值部分一起参加运算?如果参与运算,符号位又需要做哪些处理?这些问题都与符号位和数值位所构成的编码有关。机器数有四种表示方法即原码、补码、反码和移码。,1. 原码表示法,原码表示法用“0”表示正号,用“1”表示负号,数值位用真值的绝对值表示。整数的符号位与数值位之间用逗号“,”隔开;小数的符号位与数值位之间用小数点“.”隔开。约定:在本章中,n表示字长的有效位(数值位),X表示真值。(注意:跟书中有点出入),例:完成下列数的真值到原码的转换X1 = + 101

13、1011 X2 = - 1011011,X1 原 =0,1011011,X2 原 =1,1011011,整数原码的定义,0的原码有两种表示方式:+0原 =0,0000000; -0原 =1,0000000原码整数的表示范围:最大值 : 2n-1-1最小值:-(2n-1-1)表示数的个数: 2n - 1,8位: 127,-127,25516位: 32767 , -32767 , 65535,原码整数的表示范围,若二进制的位数分别是8、16,其原码表示的最大值、最小值及表示数的个数为:注意:最高位为符号位,有效数值位分别为7、15。,原码整数的表示范围:最大值 : 2n-1-1最小值:-(2n-1

14、-1)表示数的个数: 2n- 1,X 1X0 X原 = 1-X 0X-1,例:完成下列数的真值到原码的转换X1 = + 0.1011011 X2 = - 0.1011011 0的原码有两种表示方式: +0原 =0.0000000; -0原 =1-0.0000000=1.0000000,X1原=0.1011011,X2原=1.1011011,小数原码的定义,最大值 : 1-2-n 最小值:-(1-2-n)表示数的个数: 2n - 1,若二进制原码小数的位数分别是8、16位,求其该数表示的最大值、最小值及所能表示数的个数?,8位: 127/128,-127/128,25516位: 32767/32

15、768 , -32767/32768 , 65535,原码小数的表示范围,注意:最高位为符号位,有效数值位分别为7、15。,X 1X0 X原 = 1-X 0X-1,原码特点,表示简单,易于同真值之间进行转换,实现乘除运算规则简单。进行加减运算十分麻烦,本来是加法运算却可能要用减法器实现。当两个操作数符号不同且做加法运算时,先要判断两个数绝对值的大小,然后将绝对值大的数减去绝对值小的数,结果的符号以绝对值大的数为准。0的表示不惟一,2. 补码表示法,以钟表对时为例说明补码的概念假设现在的标准时间是3点整,而有一只表已经6点了,为了校准时间,可以采用两种方法:(1)逆时针:将时钟退3格(2)顺时针

16、:将时钟向前拨9格 这两种方法都能对准到3点。由此可以看出,减3和加9是等价的。就是说9是(3)对12的补码,可以用数学公式表示为: -3=+9 (mod 12) (“”为取模相等) 这里12是模数。上例中63和69之所以等价,是因为表指针超过12时,将12自动丢掉,最后得到(6+9)123。重要启示:负数用补码表示时,可以把减法转化为加法。,补码的概念,模:计量器具的容量,或称为模数。N位字长整数的模值为2N4位字长的机器表示的二进制整数为: 00001111 共16种状态,模为16=24 。一位符号位的纯小数的模值为2 补码的定义:正数的补码就是正数的本身,负数的补码是原负数加上模。,例:

17、完成下列数的真值到补码的转换 X1 = + 1011011 X2 = - 1011011,X1补=0,1011011,X2补=27+1+x=1,0100101,整数补码的定义,X 1X0 x补= 2+X 0X-1 (mod 2),例:完成下列数的真值到补码的转换 X1 = + 0.1011011 X2 = - 0.1011011,X1补=0.1011011,X2补=1.0100101,小数补码的定义,例:0的补码 (补码中“零”只有一种表示形式) + 0.0000000=0.0000000 -0.0000000=2+(-0.0000000) (mod 2) =0.000000,-1的补码,不妨

18、补码的有效数值位为n根据定义,对于整数补码有:-1补2n+1-1=1,11111.1 (包括符号位一共n1个1)根据定义,对于小数补码有:-1补2+(-1.00)=1.0.0 (n个0)由此可见, “-1”既可以在整数范围内表示,也能在小数范围内表示,在计算机中有两种不同的补码表示。再看负数-2n的补码表示-2n补2n+12n2n-11,0.0(n个0)因此,“1”的补码小数表示与“2n”的补码表示结构相同,都是:符号位为1,数值部分为n个0。 “1”与“2n”分别是补码小数和补码整数中可以表示的最小负数。,补码的表示范围:,n位有效数值位,不包括符号位n位整数: 2n -1 -2n n位小数

19、: 1- 2-n - 1 均能表示 2n 个数,原码与补码之间的转换,正数的原码和补码一致。对于负数:设n=4, x = x1x2x3x4x补=2n+1+x=10,0000-x1x2x3x4 =11111+00001 -x1x2x3x4 符号位除外,每位取反,末位加1。对小数原码也同样成立。反过来,由补码求原码也同样成立。,原码与补码之间的转换,原码-补码正数 X补=X原负数 符号位除外,每位取反,末位加1例:X= -1001001X原=1,1001001, X补=1,0110110+1=1,0110111X补= 27+1 +X=100000000-1001001= 1,0110111 10

20、0 0 0 0 0 0 0 - 1 0 0 1 0 0 1 1, 0 1 1 0 1 1 1,补码到真值的转换,公式见P32例x补=10001 (这一位表示符号位)x=-10000+0*23+0*22+0*21+1*20 1111,由X补求-X补(求机器负数),解:以小数补码为例。设y补y0y1y2yn 第一种情况, y补0.y1y2yn 所以y= 0.y1y2yn,故-y=- 0.y1y2yn 则 -y补= 第二种情况, y补1.y1y2yn 运算过程:连同符号一起将各位取反,末位再加1。设字长N=8位例:X= +100 1001 X补 = 01001001 -X补= 10110111,补码

21、最大的优点就是将减法运算转换成加法运算,X补-Y补= X补+-Y补例如 X=(11)10=(1011)2 Y=(5)10=(0101)2已知字长n=5位X补-Y补 =X补+-Y补=0,1011+1,1011=10,0110=0,0110=(6)10 注:最高1位已经超过字长故应丢掉,变形补码,为了便于判断运算结构是否溢出,某些计算机还采用了一种双符号位的补码表示方法,称为变形补码。假定变形补码的有效数值部分位数为n,则负数变形补码的表示定义为:负整数:X补=2n+2 - X负小数: X补=4 + X因为这种补码小数的模数为4,因此也称模4补码。在双符号位中,左符是真正的符号位,右符用来判别“溢

22、出”。,3. 反码表示法,反码的概念:正数的表示与原、补码相同,负数的反码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。反码通常用来作为原码求补码或者由补码求原码的中间过渡。,整数反码,0,X 2n X 0 X反= (2n+1 -1)+X 0 X -2n (mod (2n+1 -1)例: X1=+1011011, X1 反 =0,1011011 X2= -1011011, X2 反 =1,0100100 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 0 0 +0反=00000000; -0反 =11111111,X 1 X 0X反= (2

23、- 2-n)+X 0 X -1 (mod (2-2-n)X1=+0.1011011 , X1 反 =0.1011011X2= -0.1011011 , X2 反 =1.0100100 1. 1 1 1 1 1 1 1 - 0. 1 0 1 1 0 1 1 1. 0 1 0 0 1 0 0,小数反码,4. 移码(增码)表示法,移码定义:X移= 2n + X 2nX -2n 移码就是真值加上一个常数。,例: X1 = 101 0101X1补=0,101 0101X1移=1,101 0101X2 = -101 0101X2补=1,010 1011X2移=0,010 1011,X=0时,+0移=27+

24、0=1,0000000-0移=27-0=1,0000000移码表示中0的也是唯一的。移码与补码符号位相反。,引入移码的原因:当真值用补码表示时,由于符号位和数值部分一起编码,难于从补码形式上直接判断其真值的大小。例如:x=21,y=-21,X补=0,0010101, y补=1,1101011。从二进制码看, 会得出11101011 00010101的结论。,码制表示法小结,X原、X反 、X补用“0”表示正号,用“1”表示负号; X移用“1”表示正号,用“0”表示负号。如果X为正数,则X原=X反=X补。如果X为0,则X补、X移有唯一编码, X原、X反有两种编码。移码与补码的形式相同,只是符号位相

25、反。,四种编码的表示,2.2 数的定点表示和浮点表示,定点表示浮点表示,相关概念,数值范围:一种数据类型所能表示的最大值和最小值。数据精度:实数所能表示的有效数字位数。数值范围和数据精度均与使用多少位二进制位数以及编码方式有关。计算机用数字表示正负,隐含规定小数点。采用“定点”、“浮点”两种表示形式。,1. 数的定点表示方法,(1)定点整数小数点位置固定在数的最低位之后 若采用原码,则范围为: -(2n-1) 2n -1(2)定点小数小数点位置固定在数的符号位之后、数值最高位之前。 若采用原码,则范围为:-(1-2-n) 1-2-n 其中n表示数值位的位数。,数符,数值部分,小数点位置,数符,

26、数值部分,或,小数点位置,把字长分成阶码j和尾数S两部分。其根据就是: S为尾数,j为阶码,r为基数(或基值)。在计算机中,基数可取2、4、6、8或16等。以基数r=2为例,数N可写成下列不同形式:为了提高数据精度以及便于浮点数的比较,在计算机中规定浮点数的尾数用纯小数的形式。规格化数:尾数最高位为1的浮点数称作规格化数。浮点数表示成规格化形式后,其精度最高。,(1)浮点数的表示,2. 数的浮点表示方法,上溢:浮点数阶码大于最大阶码时,称为“上溢”,此时机器停止运算,进行中断溢出处理。下溢:浮点数阶码小于最小阶码时,称为“下溢”,由于此时“溢出”的数绝对值很小,通常将尾数各位强制为零,按机器零

27、处理,此时机器继续运行。,(2)浮点数的表示范围,数符,数值部分,小数点位置,阶符,阶码的数值部分,下溢,浮点数的规格化,目的:字长固定的情况下提高表示精度的措施:增加尾数位数(但数值范围减小)。采用浮点规格化形式。将非规格化数转换成规格化数的过程叫规格化。,规格化方法,当基数为2时,尾数最高位为1的数为规格化数。 1、向左规格化 出现0.0 xxx就不是规格化数 向左规格化规则:尾数左移1位,阶码减1。2、向右规格化 尾数的绝对值大于1,向左破坏了规格化。 向右规格化规则:尾数右移1位,阶码加1。,规格化方法,当基数为4时,尾数最高两位不全为0的数为规格化数。 1、向左规格化 出现0.00

28、xxx就不是规格化数 向左规格化规则:尾数左移2位,阶码减1。2、向右规格化 尾数的绝对值大于1,向左破坏了规格化。 向右规格化规则:尾数右移2位,阶码加1。当基数为8时,尾数最高两位不全为0的数为规格化数。 1、向左规格化 出现0.000 xxx就不是规格化数 向左规格化规则:尾数左移3位,阶码减1。2、向右规格化 尾数的绝对值大于1,向左破坏了规格化。 向右规格化规则:尾数右移3位,阶码加1。?若基数为16时,怎样规格?,浮点数的表示范围和精度,一旦浮点数的位数确定以后,合理分配阶码和尾数的位数,直接影响浮点数的表示范围和精度。基数对数的表示范围也有影响。基数是隐含的,浮点机中一旦基数确定

29、后就不再变了。一般来说,基数r越大,可表示的浮点数范围越宽,而且所表示的数其个数也越多。但r越大,浮点数的精度反而下降。例如:r=16的浮点数,引起规格化的尾数最高三位可能出现零,故与其尾数位数相同的r=2的浮点数相比,后者可能比前者多三位精度。,3. 定点数与浮点数的比较,数的表示范围:当浮点机和定点机中的数其位数相同时,浮点数的表示范围比定点数大得多。数的精度:当浮点数为规格化数时,其精度远比定点数高。浮点运算步骤比定点运算多,运算速度比定点低,运算线路比定点复杂。溢出判断定点数的溢出根据数值本身判断浮点数的溢出根据规格化后的阶码判断通用的大型机采用浮点数,或同时采用定、浮点数;小型、微型

30、及某些专用机、控制机采用定点数。当需作浮点运算时,可通过软件实现,也可通过外加的浮点扩展硬件(如协处理器)来实现。,例题1,1. 求X=256.5 的第一种浮点表示格式 X=(256. 5)10 =+(100000000.1)2 =+(0.1000000001 * 2+9 )2 8位阶码为:(+9)补=0,000 1001 24位尾数为:(+0.10 0000 0001)补 =0.100 0000 0010 0000 0000 0000 所求256.5的浮点表示格式为: 0,000 1001; 0.100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(09402

31、000)16,设某机器用32位表示一个实数,阶码部分8位(含1位阶符),用定点整数补码表示;尾数部分24位(含数符1位),用规格化定点小数补码表示,基数为2。,Y=-(256. 5)10 =-(100000000.1)2 =-0.1000000001 *2+9 8位阶码为:(+9)补=0000 1001 24位尾数为:(-0.10 0000 0001)补 =1.011 1111 1110 0000 0000 0000 所求-256.5的浮点表示格式为: 0, 000 1001; 1.011 1111 1110 0000 0000 0000 用16进制表示此结果则为:(09BFE000)16,2

32、. 求Y= -256.5 的第一种浮点表示格式,机器零,当一个浮点数尾数为0时,不论其阶码为何值;或阶码等于或小于它所能表示的最小树时,不管其尾数为何值,机器都把该浮点数当作零看待,并称之为“机器零”。,十进制数的表示,8421(BCD)码按二进制计数顺序选取前十个状态与十进制数的10个数码相对应,并具有相应的权值,见书P44表2-6余码在8421码基础上每位加上0011即得,是一种自补码,循环码又称格雷码,两个相邻数之间只有位状态改变,因此编码状态较多,十进制数的格式,组合格式(压缩十进制数)非组合格式(非压缩十进制数)例见书P46,数据传送,传送方式串行传送:各位数据按时间顺序逐位传送并行传送:各位数据通过相应路径同时传送串并行传送:又称字节传送,字节内部位并行传送,字节间串行传送,故障检测,奇偶校验码使每个数据码中所含的个数为奇数个或偶数个,当传送完检查的个数是否为奇数或偶数,如否,则表明出现错误. 图见P51,小结,数据的表示方法和转换二进制、八进制、十进制、十六进制无符号数和有符号数原码、补码、反码、移码数的定点表示和浮点表示,休息是为了走更远的路!,

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1