资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2.1.1数据格式,2.1.1数据格式,1、定点表示法,规则:,所有数据的小数点位置固定不变,小数点固定在什么位置?,纯整数,纯小数,数值带不带符号?,带符号数,不带符号数,2.1.1数据格式,2、定点纯整数,x,0,x,1,x,2,x,3,x,n-1,x,n,表示数的范围是 0|,|,2,n,1,提问:最小数、最大数、最接近0的正数、最接近0的负数呢?(在数轴上表示),符号,量值,小数点固定于最后一位之后,不需专门存放位置,定点纯整数,主要负责表数范围,定点纯小数,主要负责表数精度,3、定点纯小数,x,0,x,1,x,2,x,3,x,n-1,x,n,表示数的范围是 0|,|,12,n,提问:最小数、最大数、最接近0的正数、最接近0的负数?,符号,量值,小数点固定于符号位之后,不需专门存放位置,2.1.1数据格式,2.1.1数据格式,定点整数的溢出,以一个字节为例,-127 0 127,负溢出 正溢出,-(2,n,-1),(2,n,-1),2.1.1数据格式,定点小数的精度,小数点后n位,即精确到2,-n,以一个字节为例,-1 0 1,最大值0.,1111111,,无法表示0.,1111111,001,最近零0.,0000001,,无法表示0.,0000000,001,-0.,0000001,,无法表示-0.,0000000,01,最小值-0.,1111111,,无法表示-0.,1111111,11,2.1.1数据格式,4、定点表示法的特点,定点表示方法直接、简单,将二进制计数制与01状态的存储方式较好结合,但定点数表示数的范围受字长限制,表示数的大小范围有限;,带小数点的实数,需要设置,比例因子,增大或者缩小若干倍变成整数或者纯小数保存,操作不便,所以引入浮点,2.1.1数据格式,思考:可否将比例因子和有效数字一并保存在一个连续的存储空间?,可以方便的设置比例因子,将实数化为整数或者纯小数保存,比例因子的大小决定了小数点所在的实际位置,所以浮动的小数点出现了,2.1.1数据格式,5、浮点表示格式:,N =R,E,0.M,可在机器中表示为:,指数E,基数R,取固定的值2,尾数M,阶符 阶码 数符 尾数,任意十进制数N,2.1.1数据格式,举例:,0.11000 2,1100,能人,想出了这么有效的数值型数据表示方法!既能保存有效数字,又能大幅拓宽示数范围!,这样的设计会不会仍然存在什么问题?,0 1 1 0 0 0 1 1 000,2.1.1数据格式,0.11000 2,1100,0.01100 2,1101,0.00110 2,1110,0.00011 2,1111,都表示的是同一个十进制数,0 1 1 0 0 0 1 1 000,0 1 1 0 1 0 0 1 100,2.1.1数据格式,同一个数竟然可以有多种不同的表示方法?!,肿么办?_,2.1.1数据格式,解决方法:,建立一个制度,约束这种多变的情况,具体地:,建立,规格化的浮点表示方法,。指的是,当尾数的值不为0时,尾数域的最高有效位应为1。,2.1.1数据格式,同一个数的四中表示方法:,0.11000 2,1100,选用,0.01100 2,1101,舍弃,0.00110 2,1110,舍弃,0.00011 2,1111,舍弃,上述四中表示方法,只认第一种,问题得到解决!_,2.1.1数据格式,这样,数据的表示就已经很完善了吧,但还有,更能的人,粗线了,既然约定尾数不为0时,最高位始终为1,那也就可以将1省去不写,约定尾数如果写的是M,真正的尾数是1.M,节约了一个“位”,用12,-n,表示0,也能很好的完成0,+,-等的表示。,2.1.1数据格式,事情还不只这么简单,出于各种目的,有时尾数和阶码不固定的使用机器原码、补码甚至移码、反法。,不同的规则、不同的约定使同样的一组01序列,有着不同的解读。,2.1.1数据格式,规格化浮点数例题:,某机浮点规格化表示的位数格式如下,阶码和尾数均为原码,试写出所能表示的最大值、最小值、最接近零的正负值。,阶符 阶码 数符 尾数,1 5 1 9,2.1.1数据格式,阶符 阶码 数符 尾数,最大值:0.111111111*2,11111,,,即,(1-2,-9,),2,31,约等于2,143,289,344,最小值:-(1-2,-9,),2,31,最接近零正值:0.1,2,-31,接近零负值:-0.1,2,-31,1 5 1 9,2.1.1数据格式,分析:,共计16位,两个字节的存储空间,若用浮点可以表示最大值2,143,289,344(阶码位数增加值更大),该值若用定点表示至少需32位:0111 1111 1100 0000 0000 0000 0000 0000(有符号定点整数),若用无符号定点表示:0-65535,有符号定点表示:-32767-32767,2.1.1数据格式,再做例题:,设浮点数的格式为:阶符1位,阶码4位,数符1位,尾数6位,均为原码且尾数规格化,则该浮点数表示的最大数为_。,(1-2,-6,),2,15,如果在上述格式下要保存十进制数12.25,相应的01序列应为:_。,0010 0011 0001,2.1.1数据格式,规格化的浮点数表示范围如下图所示,最大值:(1-2,-6,),2,15,最小值:-(1-2,-6,),2,15,最小正值:0.1,2,-15,最大负值:0.1,-2,-15,22,2.1.1数据格式,分割线,浮点数规格化,表示理论,具体的,IEEE754标准,2.1.1数据格式,6、IEEE754标准(规定了浮点数的表示格式,运算规则等),规则规定了单精度(32)和双精度(64)的基本格式.,规则中,尾数用原码,指数用,移码,(便于对阶和比较),24,2.1.1数据格式,什么是移码?,一般用来表示浮点数的阶码,是一个定点有符号整型数据,二进制真值e=e,0,e,1,e,2,e,k-1,e,k,e,移,=2,k,+e,eg.e=+10101,e,移,=+,10101,+1,00000,=1,10101,eg.e=-10101,e,移,=-10101+100000=001011,2.1.1数据格式,但是,在IEEE754标准中移码却有特殊的约定:,32位浮点数的移码(8位)计算方法是:,E=e+127,即,e=E-127,2.1.1数据格式,IEEE754标准,32位的浮点数:,S:数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。,M是尾数,23位,在低位部分,采用纯小数表示,E是阶码,8位,采用移码表示。移码比较大小方便。,规格化:若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。,尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。,采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(0111 1111),即E=e+127。,27,2.1.1数据格式,一个规格化的32位浮点数x的真值表示为:,x=(-1),S,(1.M)2,E-127,e=E-127,64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数移码偏移值是1023。因此规格化的64位浮点数x的真值为:,x=(-1),S,(1.M)2,E-1023,e=E-1023,28,2.1.1数据格式,P18例2:将数(20.59375),10,转换成754标准的32位浮点数的二进制存储格式。,解:(20.59375),10,=10100.10011,10100.10011=1.0100100112,4,S=0,E=4+127=131,M=010010011,最后得到32位浮点数的二进制存储格式为:,0,100 0001 1,010 0100 1100 0000 0000 0000,(4 1 A 4 C 0 0 0),16,2.1.1数据格式,P18 例1:若浮点数x的754标准存储格式为(41360000),16,,求其浮点数的十进制数值。,(4 1 3 6 0 0 0 0),16,0,100 0001 0,011 0110 0000 0000 0000 0000,1位 8位 23位,1.011011 2,10000010 1111111,=1.011011 2,11,=1011.011,=(11.375),10,2.1.1数据格式-IEEE示数范围分析,IEEE754浮点数格式说明:,一个规格化的32位浮点数的真值可表示为,(1),s,(1.)2,127,e127,E全0或E全1:特殊用途;,一般数:的范围是;,(阶码范围126+127),2.1.1数据格式-IEEE示数范围分析,对于IEEE754标准:,当阶码E为全0且尾数M也为全0时的值,结合符号位S为0或1,真值x为零,包含正零和负零之分。,当阶码E为全1且尾数M为全0时,结合符号位S为0或1,真值为无穷大,也有+和-之分。,32,2.1.1数据格式-IEEE示数范围分析,尾数部分,阶码,形式,0,全0,零,0,全1,无穷,非0,全0,非正规形式NaN,非0,全1,非正规形式NaN,任意,非全0或全1,正规形式,2.1.1数据格式-IEEE示数范围分析,IEEE754的32位浮点数表示的除外的绝对值最小的数:,s,00000001,0000 0000 0000 0000 0000 000,x(),S,2,126,1.0,IEEE754的32位浮点数表示的除外的绝对值最大的数:,s,11111110,1111 1111 1111 1111 1111 111,x(),S,2,127,(22,23,),2.1.1数据格式,定点和浮点分析:,浮点数所表示的范围远比定点数大。,一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。,一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。,2.1.1数据格式,4、十进制,数串,的表示,字符串形式:一个字节存放一个十进制数位(数码)或者符号位。,压缩的十进制数串即BCD码,其他编码方式,有权码:(8421码、2421码、5211码),无权码:(余三码、格雷码),自定义数据表示,2.1.1数据格式,字符串形式,一个字节存放一个十进制的数位或符号位。为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。,即ASCII码形式。,2.1.1数据格式,压缩的十进制数串形式,压缩的十进制数串形式:一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。,BCD码(二-十进制编码),2.1.1数据格式,BCD码:,表示一位十进制数的二进制码的每一位有确定的权。一般用8421码,其4个二进制码的权从高到低分别为8、4、2和1。用0000,0001,1001分别表示0,1,9,每个数位内部满足二进制规则,而数位之间满足十进制规则,故称这种编码为“以二进制编码的十进制(binary coded decimal,简称BCD)码”。,2.1.1数据格式,十进制数,8421码,2421码,5211码,4311码,0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,1,0 0 0 1,0 0 0 1,0 0 0 1,0 0 0 1,2,0 0 1 0,0 0 1 0,0 0 1 1,0 0 1 1,3,0 0 1 1,0 0 1 1,0 1 0 1,0 1 0 0,4,0 1 0 0,0 1 0 0,0 1 1 1,1 0 0 0,5,0 1 0 1,1 0 1 1,1 0 0 0,0 1 1 1,6,0 1 1 0,1 1 0 0,1 0 1 0,1 0 1 1,7,0 1 1 1,1 1 0 1,1 1 0 0,1 1 0 0,8,1 0 0 0,1 1 1 0,1 1 1 0,1 1 1 0,9,1 0 0 1
展开阅读全文