您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第二章 计算机中数据信息的表示_2
19:481§2.3机器数的定点与浮点表示19:482§2.3机器数的定点与浮点表示一、定点表示1.定点数:小数点位置隐含地固定定点小数原码表示数据的范围是:-(1-2-n)≤x≤1-2-n补码表示数据的范围是:–1≤x≤1-2-n定点整数原码表示范围:-(2n-1)≤X≤2n-1补码表示范围:-2n≤X≤2n-1超出表示范围—溢出上溢:大于最大值—溢出下溢:小于最小值—机器0(其值趋于零)XsX1…………..Xn·XsX1…………..Xn·19:483•用定点数进行运算处理的计算机被称为定点机。•定点计算机中,选择合适的比例因子很重要,比例因子选择不当,往往会使运算产生溢出或降低数据的精度。19:484§2.3机器数的定点与浮点表示二、浮点表示(小数点位置不固定)1999=1.999×103=199.9×101=19.99×1021011.1101B=0.10111101×2100=0.0010111101×2110=10111.101×2-1N=JE×M1.基本格式阶符阶值尾符尾数值阶码(Exponent)尾数(Mantissa)浮点数表示:Es,E1…Em;Ms.M1…Mn19:485浮点数表示:Es,E1…Em;Ms.M1…MnMs:数的符号位,用0表示正数,用1表示负数M:浮点数的尾数部分,用定点小数形式表示E:浮点数的阶码部分,为整数,用移码表示尾数:有效数字的精度(n位)阶码:数的表示范围(m位)•要保证浮点数既有足够大的数值范围,又有所要求的精度,就要合理选择m,n§2.3机器数的定点与浮点表示19:4861011.1101B=0.10111101×2100=0.0010111101×2110=…[1011.1101]原=0,100;0.10111101=0,110;0.0010111101=…问题:若不对浮点数作约束,则同一数据的编码表示不唯一解决:浮点数的规格化§2.3机器数的定点与浮点表示19:4872.浮点数的规格化当尾数的值不为0时,其绝对值应大于等于0.5,即|M|≥0.5。而尾数又为定点小数,即|M|<1,故0.5≤|M|<1。如:[1011.1101]原=0,100;0.10111101为规格化浮点数而[1011.1101]原=0,110;0.0010111101非规格化------必须通过左移尾数并同时修改阶码使其变为规格化的浮点数,这种操作被称为浮点数的规格化处理。要满足0.5≤|M|<1,原码表示:尾数最高位为1,即Ms.M1=0.1或Ms.M1=1.1补码表示:正数:尾数最高位为1,即Ms.M1=0.1负数:尾数最高位为0,即Ms.M1=1.0符号位与第一数值位相异§2.3机器数的定点与浮点表示19:488§2.3机器数的定点与浮点表示思考:-0.5分别用原码和补码表示时,是不是规格化浮点数。例2-7机器字长11位,其中阶码4位、尾数7位(各含一位符号)均用补码表示,写出X=的规格化浮点表示。32111,111;0.10110019:4893.浮点数的隐藏位技术•规格化的浮点数中的尾数不为0时,其尾数最高有效位特点明确、取值固定,所以在将这样的浮点数写入内存或磁盘时,不必给出该位,可左移一位去掉它,这种处理技术称为隐藏位技术。•目的:用同样多的位能多保存一位二进制位。•--------在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。§2.3机器数的定点与浮点表示19:48104.浮点数的表示范围(阶码用移码表示,尾数用补码表示)Es,E1…Em;Ms.M1…Mn超出此范围,溢出。下溢:小于最小值—机器0,机器继续运行上溢:大于最大值浮点数尾数为0,不论阶码为何值—机器0。§2.3机器数的定点与浮点表示19:48114.浮点数的表示范围尾数部分给出有效数字的位数,决定了浮点数的表示精度,尾数占的位数越大,浮点数的表示精度就越高;阶码部分指明小数点在数据中的位置,决定了浮点数的表示范围,阶码占的位数越大,浮点数的表示范围就越大;通常希望数据表示的范围越大越好、精度越高越好,但是由于计算机的存储字长是一定的,不能两者兼顾。§2.3机器数的定点与浮点表示19:4812尾数基数对规格化浮点数特性的影响改变尾数的基数J,对规格化浮点数的特征有以下几个方面的影响:①可表示数的范围。随着基数的增大,阶码位数相同的情况下,可表示数的范围增大;②可表示数的个数。随着基数的增大,可表示数的个数增加;③数在数轴上的分布。基数越大,数在数轴上的分布密度越稀疏。§2.3机器数的定点与浮点表示19:4813三、定点数和浮点数比较§2.3机器数的定点与浮点表示定点数据表示简单,省硬件;浮点数据表示较麻烦,价格较贵。从以下几个方面来比较它们性能上的主要差距。1)数值的表示范围假设定点数和浮点数的字长相同,浮点表示法所能表示的数值范围将远远大于定点表示法,但是此范围指的只是数的上下限,它们之间是一些不连续的点,而不是—段连续的区间。对于定点数而言,各个点在数轴上的分布是均匀的;而对于浮点数而言,各个点在数轴上的分布是不均匀的。越靠近数轴的原点,两个相邻的浮点数之间的距离就越近。19:48142)精度所谓精度是指一个数所含有效数值位的位数。一般来说机器字长越长,它所表示的数的有效位数就越多,精度就越高:对于字长相同的定点数与浮点数来说,浮点数虽然扩大了数的表示范围,但这正是以损失精度为代价的,也就是数轴上各点的排列更稀疏了。§2.3机器数的定点与浮点表示19:48153)数的运算浮点数包括阶码和尾数两部分,运算时不仅要做尾数的运算,还要做阶码的运算,而且运算结果要求规格化。因此浮点运算要比定点运算复杂。4)溢出处理在定点运算时,当运算结果超出数的表示范围,就叫做溢出。而在浮点运算时,运算结果仅尾数超出数的表示范围都不一定溢出,只有当阶码超出所能表示的范围时,才发生溢出。§2.3机器数的定点与浮点表示19:4816§2.3机器数的定点与浮点表示四、定点数和浮点数举例1、定点数例1:机器字长8位,写出±3的定点表示[-3]原=1,0000011[-3]反=1,1111100[-3]补=1,1111101[+3]原=[+3D]反=[+3D]补=0,000001119:4817例2:机器字长8位,写出X=-11/32的定点表示X=-(23+2+1)/25=-(2-2+2-4+2-5)=-0.01011[X]原=1.0101100[X]反=1.1010011[X]补=1.1010100§2.3机器数的定点与浮点表示19:4818§2.3机器数的定点与浮点表示2、浮点数例1:浮点数格式为×,×××;×.×××××××,写出此数所能表示的最大正数、最小正数、最大负数和最小负数。(阶码和尾数用原码表示,不考虑规格化)0正max正min负max负min正max=0,111;0.1111111=(1-2-7)*2+7正min=1,111;0.0000001=+2-7*2-7负max=1,111;1.0000001=-2-7*2-7负min=0,111;1.1111111=-(1-2-7)*2+719:4819§2.3机器数的定点与浮点表示例2:机器格式为×,×××;×.××××××,写出X=-11/32的规格化浮点表示X=-11/32=-(23+2+1)/25=-(2-2+2-4+2-5)=-0.01011B=-0.1011×2-1[X]原=1,001;1.101100[X]补=1,111;1.01010019:4820§2.3机器数的定点与浮点表示浮点数练习:浮点:×,×××;×.××××××,写出X=-9/128的规格化浮点表示19:4821§2.3机器数的定点与浮点表示五、实用浮点数举例-IEEE754浮点数格式IEEE754标准的浮点数格式类型数符ms阶码E尾数m总位数偏置值单精度数1823327FH127双精度数11152643FFH1023临时浮点数11564803FFFH16383Emsm阶码部分,用移码表示尾符尾数数值位尾数部分,用原码表示19:4822IEEE754标准的浮点数1、最高位为数符位;2、其后是8位阶码,以2为底,移码表示,阶码的偏置值为127;(阶码E的表示范围为[-127,128],但当E全为0和1时,分别表示零和无穷大,所有E的实际范围为[-126,127])3、其余23位是尾数。为了使尾数部分能表示更多一位的有效值,IEEE754采用隐含尾数最高数位1(即这一位1不表示出来)的方法,因此尾数实际上是24位,应注意的是,隐含的1是一位整数(即位权为20),在浮点格式中表示出来的23位尾数是纯小数,并用原码表示。19:4823IEEE754浮点数表示可以归纳出以下多种情况:①若指数e全0,且M=0时,N为0(零有正负之分,由符号位决定);②若指数e全0,且M≠0时,对应的阶码为Emin-1,但阶码值取Emin,由于得到的结果值较小,为避免下溢而损失精度,尾数采用非规格化数(无隐藏的1):即N=。③若指数e不是全0或全1时(对应正常的阶码范围EminEEmax),按正常方式计算数据的阶码值,尾数为规格化的数(有隐藏的1),N=;④若指数e全1,且M=0,表示无穷大(无穷大也有正负之分,由符号位决定);⑤若指数e全1,且M≠0,则认为这不是一个数(NaN)。).0(2)1(minMEs).1(2)1(MEs19:4824例:将(100.25)10转换成IEEE754短浮点数(单精度)格式。⑴十进制数→二进制数(100.25)10=(1100100.01)2⑵非规格化数→规格化数1100100.01=1.10010001×26⑶计算移码表示的阶码(偏置值+阶码真值)1111111+110=10000101⑷以短浮点数格式存储该数。符号位=0阶码=10000101尾数=10010001000000000000000短浮点数代码为0;10000101;1001000100000000000000019:4825例:将单精度IEEE754浮点数00280000H转换成十进制数。解:00280000H表示为二进制:0,00000000,01010000000000000000000分析可得:符号位为0是正数;由于指数全0,此数属于特殊数值,对应的阶码取Emin=-126;尾数M此时是非规格化的数,没有隐含整数1,对应0.3125。该浮点数对应的十进制数为:(-1)0×2-126×0.3125≈3.67342e-3919:4826§2.4非数值数据的编码表示字符数据--------字符、字符串、汉字一.字符编码1、ASCII码美国国家信息交换标准代码AmericanStandardCodeforInformationInterchange7位二进制表示一个字符:共128个数字、字母、专用符号、控制符号19:48270000010100111001011101110000NULDELSP0@P‘p0001SOHDC1!1AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,L\l|1101CRGS-=M]m}1110SORS.Nn~1111SIUS/?O_oDEL19:4828§2.4非数值数据的编码表示ASCII码的特点:1-数字和英文字母有序排列;2-数字高位011,低位0000--1001,便于处理;3-最高位作用变化;奇偶校验位区分英文和汉字标志扩展ASCII码19:4829§2.4非数值数据的编码表示2.字符串的表示与存储字符串:一串连续的字符,占据主存中连续的多个字节,每个字节存放一个字符。表示字符串数据:要给出串存放的主存起始地址和串的长度。19:4830§2.4非数值数据的编码表示向量存放法:
本文标题:第二章 计算机中数据信息的表示_2
链接地址:https://www.777doc.com/doc-4287287 .html