计算机中数据的表示方法.ppt

上传人:牧羊曲112 文档编号:6606162 上传时间:2023-11-17 格式:PPT 页数:92 大小:645.50KB
返回 下载 相关 举报
计算机中数据的表示方法.ppt_第1页
第1页 / 共92页
计算机中数据的表示方法.ppt_第2页
第2页 / 共92页
计算机中数据的表示方法.ppt_第3页
第3页 / 共92页
计算机中数据的表示方法.ppt_第4页
第4页 / 共92页
计算机中数据的表示方法.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《计算机中数据的表示方法.ppt》由会员分享,可在线阅读,更多相关《计算机中数据的表示方法.ppt(92页珍藏版)》请在三一办公上搜索。

1、计算机组成原理,第三章 运算方法与运算部件,3.1 数据的表示方法和转换,3.1.1数值数据的表示法进位计数制及其转换一、进位计数制:用少量的数字符号(也称数码),按先后次序把它们排成数位,由低到高进行计数,计满进位,这样的方法称为进位计数制。基数:进位制的基本特征数,即所用到的数字符号个数。例如10进制:09 十个数码表示,基数为10。权:进位制中,处于某一位上的“1”所表示的数值的大小为该位的权。各种进位计数制中的权值恰好是基数的某次幂。常见的进位制:2,8,10,16进制。,1、十进制(Decimal),数码为:09;基数是10。Decimal:十进制运算规律:逢十进一,即:9110。十

2、进制数的权展开式:,103、102、101、100称为十进制的权。各数位的权是10的幂。,同样的数码在不同的数位上代表的数值不同。,任意一个十进制数都可以表示为各个数位上的数码与其对应的权的乘积之和,称权展开式。,即:(5555)D5103 510251015100,例如:一个十进制数143.75的表示,注:等式左边为并列表示法等式右边为多项式表示法,2、二进制(Binary),数码为:0、1;基数是2。Binary:二进制运算规律:逢二进一,即:1110。二进制数的权展开式:如:(101.01)B 122 0211200211 22(5.25)10,加法规则:0+0=0,0+1=1,1+0=

3、1,1+1=10乘法规则:00=0,0 1=0,1 0=0,1 1=1,运算规则,各数位的权是的幂,二进制数只有0和1两个数码,它的每一位都可以用电子元件来实现,且运算规则简单,相应的运算电路也容易实现。,例如:一个二进制数(1101.01)2的表示,3.二进制数的性质,移位性质:小数点右移一位,数值扩大一倍小数点左移一位,数值减小一半奇偶性质:最低位为0,偶数最低位为1,奇数,1.1,=20+2-1=1.5,11,=21+20=2(20+2-1)=3,0.11,0.75=2-1(20+2-1)=2-1+2-2=,4.二进制数的特点,优点:只有0,1两个数码,易于用物理器件表示。电位的高低,脉

4、冲的有无,电路通断等都比较容易区别,可靠性高。运算规则简单。二进制的0,1与逻辑命题中的真假相对应,为计算机中实现逻辑运算和逻辑判断提供有利条件。缺点:书写冗长,不易识别,不易发现错误,5、十六进制(Hexadecimal),数码为:09、AF;基数是16。Hexadecimal:十六进制运算规律:逢十六进一,即:F110。十六进制数的权展开式:如:(D8.A)H 13161 816010 161(216.625)10,各数位的权是16的幂,例如十六进制数(2A.7F)16的表示,6、八进制,数码为:07;基数是8。O:八进制运算规律:逢八进一,即:7110。八进制数的权展开式:如:(207.

5、04)8 282 0817800814 82(135.0625)10,各数位的权是8的幂,3.1.2进位计数制之间的转换,1、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,例如:写出(1101.0101)2,(237)8,(10D)16的十进制数。,(1101.0101)2=123+122+021+120+02-1+12-2+02-3+12-4=8+4+1+0.25+0.0625=13.3125(237)8=

6、282+381+780=128+24+7=159(10D)16=1162+13160=256+13=269,2、十进制转换成二进制方法,一般分为两个步骤:整数部分的转换除2取余法(基数除法)减权定位法小数部分的转换乘2取整法(基数乘法),除基取余法:把给定的十进制整数除以基数,取余数作为最低位的系数,然后继续将商部分除以基数,余数作为次低位系数,重复操作直至商为0。,(25)D=(11001)B,除基数得余数作系数从低位到高位,减权定位法:,将十进制数依次从二进制的最高位权值进行比较,若够减则对应位置1,减去该权值后再往下比较,若不够减则对应位为0,重复操作直至差数为0。例:将(327)10

7、转换成二进制数512 256 128 64 32 16 8 4 2 1 0256327512327-256=71 171128 071-64=7 1732 0716 078 07-4=3 1 3-2=1 11-1=0 1,(327)10=(101000111)2,乘基取整法(小数部分的转换):把给定的十进制小数乘以2,取其整数作为二进制小数的第一位,然后取小数部分继续乘以2,将所得整数部分作为第二位小数,重复操作直至得到所需要的二进制小数。,0.8125,2,1.6250,2,1.2500,2,0.5000,取整,1,1,0,0.6250,0.2500,乘基数取整数作系数从高位到低位,若小数在

8、连乘多次后不为 0,一般按照精确度要求(如小数点后保留 n 位)得到 n 个对应位的系数即可。,2,1.0000,1,问题:(25.8125)10=(?)2,(1)二进制数转换为八进制数:将二进制数由小数点开始,整数部分向左,小数部分向右,每3位分成一组,不够3位补零,则每组二进制数便是一位八进制数。,3、其它进制之间的直接转换法,二进制数与八进制数的相互转换,1 1 0 1 0 1 0.0 1,0 0,0,(152.2)8,(2)八进制数转换为二进制数:将每位八进制数用3位二进制数表示。,=011 111 100.010 110,(374.26)8,二进制转换成八进制,例:(10110111

9、.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)8=(001,010,011.100,110)2=(1010011.10011)2,二进制数与十六进制数的相互转换,1 1 1 0 1 0 1 0 0.0 1 1,0 0 0,0,(1D4.6)16,=1010 1111 0100.0111 0110,(AF4.76)16,二进制数与十六进制数的相互转换,按照每4位二进制数对应于一位十六进制数进行转换。,二进制转换

10、成十六进制,例:(110110111.01101)2,(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)2=(11110101100.1101111)2,2、有权码和无权码,有权码表示一位十进制数的二进制码的每一位有确定的权。一般用8421码,其4个二进制码的权从高到低分别为8、4、2和1。用0000,0001,1001分别表示0,1,9,每个数位内部满

11、足二进制规则,而数位之间满足十进制规则,故称这种编码为“以二进制编码的十进制(binary coded decimal,简称BCD)码”。,在计算机内部实现BCD码算术运算,要对运算结果进行修正,对加法运算的修正规则是:如果两个一位BCD码相加之和小于或等于(1001)2,即(9)10,不需要修正;如相加之和大于或等于(10)10,要进行加6修正,并向高位进位,进位可以在首次相加(例3.10)或修正时(例3.10)产生。,4+9=13 0 1 0 0+1 0 0 1 1 1 0 1+0 1 1 0 修正1 0 0 1 1 进位,例3.101+8=9 0 0 0 1+1 0 0 0 1 0 0

12、1不需要修正,另外几种有权码,如2421,5211,4311码(见表3.2),也是用4位二进制码表示一个十进制数位,但4位二进制码之间不符合二进制规则。这几种有权码有一特点,即任何两个相加之和等于(9)10的二进制码互为反码。例如,在2421码中,0(0000)与9(1111)、1(0001)与8(1110)、,互为反码。,表3.2 4位有权码,无权码表示一个十进制数位的二进制码的每一位没有确定的权。用得较多的是余3码(Excess-3 Code)和格雷码(Gray Code),格雷码又称“循环码”。余3码是在8421码基础上,把每个编码都加上0011而形成的(见表3.3),其运算规则是:当两

13、个余3码相加不产生进位时,应从结果中减去0011;产生进位时,应将进位信号送入高位,本位加0011。例3.11(28)10+(55)10=(83)10,0 1 0 1 1 0 1 1(28)10+)1 0 0 0 11 0 0 0(55)101 1 1 0 0 0 1 1低位向高位产生进位,高位不产生进位-)0 0 1 1+)0 0 1 1 低位+3,高位-3 1 0 1 1 0 1 1 0格雷码的编码规则:任何两个相邻编码只有一个二进制位不同,而其余三个二进制位相同。其优点是从一个编码变到下一个相邻编码时,只有1位发生变化,用它构成计数器时可得到更好的译码波形。格雷码的编码方案有多种,表3.

14、3给出两组常用的编码值。,表3.3 4位无权码,3.数字串在计算机内的表示与存储,主要有两种形式:(1)字符形式。即一个字节存放一个十进制数位或符号位,存放的是09十个数字和正负号的ASCII编码值。(2)压缩的十进制数形式。用一个字节存放两个十进制数位,既节省了存储空间,又便于完成十进制数的算术运算。其值用BCD码或ASCII码的低4位表示。符号位也占半个字节并放在最低数字位之后,其值可从4位二进制码中的6种冗余状态中选用。,3.2.1数的编码与表示,数值范围:一种数据类型所能表示的最大值和最小值。数据精度:实数所能表示的有效数字位数。数值范围和数据精度均与使用多少位二进制位数以及编码方式有

15、关。计算机用数字表示正负,隐含规定小数点。采用“定点”、“浮点”两种表示形式。,3.2 带符号的二进制数据在计算机中的表示方法及加减法运算,1、真值和机器数真值:正、负号加某进制数绝对值的形式。如二进制真值;X=+1011 y=-1011机器数:在机器中使用的连同符号一起数码化表示的二进制数的形式。最高位是符号位,通常用“0”表示正号,用“1”表示负号。如:X=0 1011 y=1 10112、常用的几种码制表示法原码、反码、补码、移码,原码表示法用“0”表示正号,用“1”表示负号,有效值部分用二进制的绝对值表示。注:以下X=X0X1X2 Xn,字长的有效位数为n+1,(1)原码表示法,若定点

16、小数的原码形式为X0.X1X2XN,则原码表示的定义是,式中X原是机器数,X是真值,若定点整数的原码形式为X0X1X2XN,则原码表示的定义是,完成下列数的真值到原码的转换:X1=+0.1011011 X2=-0.1011011,X1原=0.1011011,X2 原=1.1011011,“.”只用于助记,在计算机中并无专用部件来表示,完成下列数的真值到原码的转换:X1=+1011011 X2=-1011011,X1 原=0 1011011,X2 原=1 1011011,原码整数中+0原=00000000;-0原=10000000表示范围:-(2n-1)+(2n-1),8位字长:-127+127

17、16位字长:-32767+32767,原码特点:,原码小数中+0原=0.0000000;-0原=1.0000000 表示范围:-(1-2-n)1-2-n,表示简单,易于同真值之间进行转换。进行加减运算十分麻烦,速度慢。表示0有两种形式。,8位字长:-127/128+127/12816位字长:-32767/32768+32767/32768,正数的表示与原码相同,负数的反码符号位为1,数值位是将原码的数值按位取反。,(2)反码表示法,若定点小数,反码表示的定义是,对定点整数,补码表示的定义是,小数:X1=+0.1011011,X1 反=0.1011011X2=-0.1011011,X2 反=1.

18、0100100,整数:X3=+1011011,X3 反=01011011X4=-1011011,X4 反=10100100+0反=0.0000000;-0反=1.1 1 1 1 1 1 1,反码运算是以2-2-n为模,所以,当最高位有进位而丢掉进位(即2)时,要在最低位+1。例3.21 X=0.1011,Y=-0.0100,则有:X反=0.1011,Y反=1.1011X+Y反=X反+Y反=0.1011+1.1011反=10.0110其中,最高位1丢掉,并要在最低位加1。所以得X+Y反=0.0111mod(2-2-4)。,例3.22 X=0.1011,Y=-0.1100,则有:X反=0.1011

19、,Y反=1.0011X+Y反=0.1011+1.0011反=1.1110(其真值为-0.0001),反码特点:0也有两种形式 反码表示正数时,与原码和补码的形式完全相同。表示负数时,其码值比补码小“1”。反码也同样适用于加减法运算,在加减法运算时,如产生模的溢出时,在最低位补“1”。,表示范围:对于n1位反码机器数X,它所能表示的数据范围为:定点整数:(2n1)X 2n1定点小数:(12-n)X 12-n,正数的补码与原码相同,负数的补码是将负数的反码末位加1。模:计量的范围,或称为模数,超出模数即溢出被丢掉。N位字长的整数(包括1位符号位)模值为 2N N位字长的纯小数(包括1位符号位)的模

20、值为2 例:4位字长的机器表示的二进制整数为:00001111 共16种状态,模为16=24。,(3)补码表示法,若定点小数补码形式为X0.X1X2Xn,则补码表示的定义是,对定点整数,补码表示的定义是,小数完成下列数的真值到补码的转换:X1=+0.1011011 X2=-0.1011011,X1补=0.1011011,X2补=1.0100101,整数完成下列数的真值到补码的转换:X1=+0 1011011 X2=-0 1011011,X1补=01011011,X2补=10100101,补码的表示范围:,n+1位字长纯整数:-2n 2n-1 当字长为7时:-1补=11111111+0补=000

21、00000-0补=00000000-128补=28-|-128|=100000000b-10000000b=10000000b?n+1位字长纯小数:-1 1-2-n 当字长为7时:-1补=1.0000000,原码与补码之间的转换,原码求补码正数 X补=X原负数 符号位不变,各位取反,末位加1。例:X=-01001001X原=11001001,X补=10110110+1=10110111X补=28+X=100000000-1001001=10110111 100000000-1001001 10110111,由X补求-X补(求机器负数),方法:连同符号一起将各位取反,末位再加1。设字长N=8位例

22、:X=+1 0 0 1 0 0 1 X补=0 1 0 0 1 0 0 1-X补=1 0 1 1 0 1 1 1,补码的的优点:可以将减法运算转换成加法运算,简化了运算规则。,当补码加法运算的结果不超出机器范围时,可得出以下重要结论:(1)用补码表示的两数进行加法运算,其结果仍为补码。(2)X+Y补=X补+Y补。(3)符号位与数值位一样参与运算。,例3.15 设X=0.1010,Y=-0.0101,X为正,Y为负:X+Y补=0.1010+(-0.0101)补=0.0101X补+Y补=0.1010+-0.0101补=0.1010+(2-0.0101)=2+0.0101=0.0101mod 2即X+

23、Y补=X补+Y补=0.0101,例3.18 设X=-0.0000,Y=-0.0000X补+Y补=X+Y补=(2+0.0000)+(2+0.0000)=4+0.0000=0.0000 mod 2说明两个负零相加,最后得正零,再次说明了补码零在机器中的表示形式是唯一的。例3.19 设X=-0.1011,Y=-0.0101,则有X+Y补=X补+Y补=1.0101+1.1011=11.0000=1.0000 mod 2而X+Y的真值=-0.1011+(-0.0101)=-1.0000,为-1。由此说明一个数的补码值的范围在-1和(1-2-n)之间(假设数值部分为n位)。X-Y补=X+(-Y)补=X补+

24、-Y补,由X补求-X补(求机器负数),方法:连同 符号一起将各位取反,末位再加1。设字长N=8位例:X=+1 0 0 1 0 0 1 X补=0 1 0 0 1 0 0 1-X补=1 0 1 1 0 1 1 1,补码的的优点:可以将减法运算转换成加法运算,简化了运算规则。,补码特点:是一种以模数为概念而引入的机器码,因此模数取不同值,负数的补码值也会随之改变。补码形式将负数化为正数形式,将减法化为加法运算,特别适合于加减法运算。负数补码可以通过对原码数码位(除符号位)取反加“1”(最低位权值)求得。补码的模数比反码的模数大“1”。,(4)移码表示法,(1)表示方法:最高位为符号位,其他位为数值位

25、。符号位:1正数,0负数。数值位:正数时,与绝对值相同;负数时,为绝对值取反后,末位加1。,移码表示:即为补码的符号位取反,例1:X=1011,Y1011,则:X移;Y移;例2:X=0.1101,Y-0.1101,则:X移;Y移;例3:X=1011,Y-0.1101,求X和Y的8位移码机器数。X移;Y移;例4:0移?,1,1011,0,0101,1.1101,0.0011,1,0001011,0.0011000,(2)0 的表示:0 的移码表示形式是唯一的,即分别按照正数和负数表示均一致。+0移 100-0移 100(3)表示范围:对于n1位移码机器数X,它所能表示的数据范围为:定点整数:2n

26、1X 2n1定点小数:1X 12n移码通常作为浮点数的阶码。,包括1位符号位,n位数值位,码制表示法小结,X原、X反、X 补用“0”表示正号,用“1”表示负号;如果X为正数,则X原=X反=X 补。如果X为0,则 X 补 有唯一 编码,X原、X移、X反 有两种编码。,一个代码,赋予不同类型,其数值不一样。而类型要由人编程指定。,例:计算机内一个8位二进制数10000001B无符号二进制数 129,有符号整数:原码 1,反码 126,补码 127有符号小数:原码 0.0000001B=1/128 反码 126/128,补码 127/128,其实只要这样想:8位的二进制数据可以表示256种情况原码就

27、是:(-127-0,+0+127)反码一样补码因为+0和-0表示方法一样,所以肯定多出来一种情况,即10000000,把它定义成-128,3.2.2 加减法运算的溢出处理,当运算结果超出机器数所能表示的范围时,称为溢出。显然,两个异号数相加或两个同号数相减,其结果是不会溢出的。仅当两个同号数相加或者两个异号数相减时,才有可能发生溢出的情况,一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来。,9+5=14(-9)+(-5)=-14 12+7=19(溢出)0 1 0 0 1 1 0 1 1 1 0 1 1 0 0+0 0 1 0 1+1 1 0 1 1+0 0 1 1 1 0 1 1 1

28、 0 1 1 0 0 1 0 1 0 0 1 1(-12)+(-7)=-19(溢出)14-1=13-14+1=-13 1 0 1 0 00 1 1 1 0 1 0 0 1 0+1 1 0 0 1+1 1 1 1 1+0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1在上例中,、和得出正确结果,和为溢出。,今以4位二进制补码正整数加法运算为例说明如下:,3.2.3 定点数和浮点数,1.定点数定点数是指小数点固定在某个位置上的数据,一般有小数和整数两种表示形式。定点小数是把小数点固定在数据数值部分的左边,符号位的右边;整数是把小数点固定在数据数值部分的右边。我们

29、在前面讨论的数据都是定点数。2.浮点数浮点数是指小数点位置可浮动的数据,通常以下式表示:N为浮点数,M为尾数,E为阶码,R称为“阶的基数(底)”,而且R为一常数,一般为2、8或16。,N=MRE,数值数据的定点、浮点表示法1、定点表示法约定机器中所有数据的小数点位置固定不变。用定点表示法表示的数称为定点数。(1)定点小数(纯小数):小数点在数值最高有效位之前,符号位之后。X=X0.X1X2 Xn,符号位.,尾 数,范围:2-nX1-2-n,(2)定点整数:小数点固定在数的最低位之后。X=X0X1X2 Xn.范围:1X 2n-1,(1)浮点数的表示格式,浮点数的机内表示一般采用以下形式:MS E

30、 M1位 n+1位 m位MS是尾数的符号位,设置在最高位上。E为阶码,有n+1位,一般为整数,其中有一位符号位,设置在E的最高位上,用来表示正阶或负阶。M为尾数,有m位,由MS和M组成一个定点小数。MS=0,表示正号,MS=1,表示负号。,数符,阶码,尾数值,移码或补码表示,补码或原码表示,(2)浮点数的规格化,为了保证数据精度,尾数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值应大于或等于(0.5)10。对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求。尾数为原码表示时,无论正负应满足 d-1正数的尾数形式为0.1负数的尾数形式为1.0,例1.将下列十进制数

31、表示成浮点规格化数,阶码4位(含符号),分别用补码和移码表示;尾数6位(含符号),用补码表示。24/512-24/512解:24/512=(+110002-9)2=(+0.110002-4)2其补码表示为0 1100 11000其阶码用移码表示为0 0100 11000-24/512=(-110002-9)2=(-0.110002-4)2其补码表示为1 1100 01000其阶码用移码表示为0 0100 01000,例2.设某机器用32位表示一个实数,阶码部分8位(含1位阶符),用定点整数补码表示;尾数部分24位(含数符1位),用规格化定点小数补码表示,基数为2。求X=256.5 的浮点表示格

32、式。解:X=(256.5)10=(+100000000.1)2=(+0.1000000001 x 2+9)2 8位阶码为:(+9)补=0000 1001 24位尾数为:(+0.10 0000 0001)补=0.100 0000 0010 0000 0000 0000 所求256.5的浮点表示格式为:0 000 0100 1 100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(04C02000)16,(3)IEEE 754 浮点数标准,根据IEEE 754国际标准,常用的浮点数有两种格式:(1)单精度浮点数(32位),阶码8位,尾数24位(内含1位符号位)。(2

33、)双精度浮点数(64位),阶码11位,尾数53位(内含1位符号位)。,:浮点数的符号位,1 位,0表示正数,1表示负数。:尾数,23位,用小数表示,小数点放在尾数域的最前面。:阶码(8 位),阶符采用隐含方式,即采用移码方式来表示正负指数。,移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数真值e 变成阶码 时,应将指数 e 加上一个固定的偏移值127(01111111),即 e127.IEEE754 标准中,一个规格化的32位浮点数X的真值表示为 X(1)s(1.)2127 e127一个规格化的64位浮点数X的真值为 X(1)s(1

34、.)21023 e1023其中尾数域所表示的值是1.M。因为规格化的浮点数的尾数域最左位(最高有效位总是1,故这一位经常不予存储,而认为隐藏在小数点的左边),例1.若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。解:将16进制数展开后,可得二进制数格式为,指数 e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011X=(-1)s 1.M 2e=+(1.011011)23=+1011.011=(11.375)10,例2.将(20.5

35、9375)10转换成754标准的32位浮点数的二进制存储格式。解:,首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2位之间10100.10011=1.010010011 23 e=4s=0,E=4+127=131,M=010010011最后得到32位浮点数的二进制存储格式为:0100 0001 1010 0100 1100 0000 0000 0000=(41A4C000)16,例3.写出十进制数(-5)10的754编码。解:,(-5)10=(-101)2在IEEE 754中规格化表示为1.01 22 s=1,E=2+127=129

36、,M=01IEEE 754编码为:1100 0000 1010 0000 0000 0000 0000 0000,(4)浮点数的表示范围,设浮点数共n位,其中尾数n1位,阶码n2位,用原码表示时 阶码,表示范围:尾数,表示范围:浮点数最大值:最小值:绝对值最小值:,(5)溢出处理,尽管浮点表示能扩大数据的表示范围,但浮点机在运算过程中,仍会出现溢出现象。溢出处理(一个数的大小超出了表示范围)浮点数范围是由阶码决定的。当一个浮点数阶码大于机器的最大阶码时,称为上溢;小于最小阶码时,称为下溢。依尾数正、负决定是正溢出还是负溢出。尾数溢出:上(正)溢、下(负)溢。右规处理 阶码溢出:上溢需停机进行出

37、错处理 下溢数据按零处理,下面以阶码占 3 位,尾数占 5 位(各包括 1 位符号位)为例,来讨论这个问题。图中,“可表示的负数区域”和“可表示的正数区域”及“0”,是机器可表示的数据区域;上溢区是数据绝对值太大,机器无法表示的区域;下溢区是数据绝对值太小,机器无法表示的区域。若运算结果落在上溢区,就产生了溢出错误,使得结果不能被正确表示,要停止机器运行,进行溢出处理。若运算结果落在下溢区,也不能正确表示之,机器当 0 处理,称为机器零。一般来说,增加尾数的位数,将增加可表示区域数据点的密度,从而提高了数据的精度;增加阶码的位数,能增大可表示的数据区域。,当一个浮点数的尾数为0(不论阶码是何值

38、),或阶码的值比能在机器中表示的最小值还小时,计算机都把该浮点数看成零值,称为机器零。同一个浮点数的表示方法不是唯一的如:11.01 也可以表示成 0.011012-3,0.11012-2,(6)数的定点表示与浮点表示的比较,浮点表示比较定点表示的数的范围大。如用同样位数:16位 定点表示:0.00010.1111 其绝对值变化范围为215(1215)1 浮点表示:阶码为四位,尾数为十二位,各含一位符号,其绝对值范围为2721127(1211)所以定点表示:范围为2151 浮点表示:范围为21827 当然为了提高浮点数的精度,必须采用比定点数长的位数,以增加尾数的长度。,浮点数的表示及处理较为

39、复杂。浮点数要包含二个部分阶码及尾数,可以采用不同编码制。浮点数要规格化及溢出处理都比定点数复杂。浮点数运算过程也比定点数复杂。加减法时,要先对阶,使小数点位置对齐,然后再运算,运算完毕要规格化及溢出处理。乘除法:要阶码进行加减法,尾数相乘、除,运算完毕再要规格化及溢出处理。,2、浮点表示法把字长分成阶码和尾数两部分:N=RE.SR基数,E阶码,S尾数,用浮点表示法表示的数称为浮点数。格式通常为:,阶符,尾符,阶码值,尾数值,通常,阶码为补码或移码定点整数,尾数为补码或原码定点小数。,设X=23(+0.10101),(阶移尾补),数据校验码,校验码:在基本的有效数据外,再扩充部分位,增加部分(

40、冗余部分)被称为校验位。将校验位与数据位一起按某种规则编码。一、奇偶校验码 在每组数据信息上附加一个奇(或偶)校验位,组成的新数据称为奇(或偶)校验编码。校验位的取值(0或1)取决于这组信息中“1”的个数和校验方式(奇或偶校验)。奇校验:校验编码中“1”的个数为奇数。偶校验:校验编码中“1”的个数为偶数。,例如:8位信息10101011,附加校验位后变为9位若用奇校验,则奇校验编码应为 10101011 0;若用偶校验,则偶校验编码应为 10101011 1。奇偶校验的特点:1、可检验出数据传送过程中奇数个数位出错的情况;2、简便、可靠易行,但不能自动纠正错误。,二、循环冗余校验码(CRC码)

41、,通过某种数学公式建立信息位和校验位之间的约定关系能够校验传送信息的对错,并且能自动修正错误。广泛用于通信和磁介存储器中。CRC编码格式是在k位信息后加r位检验码。,校验位(r位),信息位(k位),N N-1 2 1,1、CRC码的编码方法,假设被传送的k位二进制信息位用C(x)表示,系统选定的生成多项式用G(X)表示,将C(x)左移 G(X)的最高次幂(即等于需要添加的校验位的位数r),写作 C(x)2 r,然后将C(x)2 r除以生成多项式G(x),所得商用Q(x)表示,余数用R(x)表示。则:两边同时乘以G(x)并左移 R(x)得到:,故有:即为所求的n位CRC码。余数R(x)就是校验位

42、(r位),等式两边都是G(x)的倍数。发送信息时将等式左边生成的n位CRC码送给对方。当接收方接到n位编码后,同样除以G(x),如果传输正确则余数为0,否则则可以根据余数的数值确定是哪位数据出错。,CRC编码采用的加、减法是按位加减法,运算规则为:00=0,01=1,10=1,11=0,2、求CRC码的步骤,分三步:(1)在 C(X)的尾部加r个“0”,即C(x)2 r;(2)求C(x)2 r/G(x)做模2运算的余数R(x);(3)把余数加到C(x)2 r上。,例:被传输的信息C(x)=1101011011,生成多项式 G(X)=X4+X+1=10011,求C(x)的CRC码。,解:r=5-

43、1=4 位(1)C(x)2 r=1 1 0 1 0 1 1 0 1 1 0 0 0 0(2)1 1 0 1 0 1 1 0 1 1 0 0 0 0/10011 余数:R(x)=1110(3)把R(x)加到C(x)2 r上得:CRC码为:1 1 0 1 0 1 1 0 1 1 1 1 1 0,小结&复习1.数值数据的表示法 二进制、八进制、十六进制数据的表示和相互转换的方法。基数、权的含义,权展开式的写法二进制:基数为2,逢二进一,运算规则 重要的性质(移位p-19,奇偶)优点和缺点十六进制:基数为16八进制:基数是8各个进制之间的转换。2.数的编码和表示,真值、机器数原码、补码、反码、移码注意:0的表示方法(补同一;移、原、反同二)各个编码的表示范围 符号位的表示 各个编码之间的转换,注意符号位。各个编码的特点及重要的性质。补码的特点及应用在运算上的特点 码制表示法小结(见教案),数值数据的浮点、定点表示方法定点数的表示:整数和小数的表示及表示范围浮点数的表示:阶码和尾数2部分。阶码为补码或移码定点整数,尾数为补码或原码定点小数。浮点数的范围字符的编码:ASCII编码(重点要求数字和字母)8421编码(掌握编码的方法)数据校验码:奇偶校验码(重点掌握奇偶校验的方法),

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号