Lecture 3 浮点数的表示

上传人:yx****d 文档编号:243099183 上传时间:2024-09-15 格式:PPT 页数:27 大小:501KB
返回 下载 相关 举报
Lecture 3 浮点数的表示_第1页
第1页 / 共27页
Lecture 3 浮点数的表示_第2页
第2页 / 共27页
Lecture 3 浮点数的表示_第3页
第3页 / 共27页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,信息管理学院,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,问题,写出,+0.125, -0.125,的补码和移码表示。为什么用补码,移码?,如何表示即有整数又有小数的数值数据,如,12.25,?,12.25,用浮点数怎么表示?,为什么要对浮点数进行规格化?,1,引入,定点表示法的特点,定点数表示数的范围受字长限制,表示数的范围有限,;,定点表示的精度有限;,机器中,常用定点数表示纯整数和纯小数,表示即有整数又有小数时比较麻烦。,2,Lecture,3,浮点数表示,3,课程结构,4,浮点数的表示格式,对任意一个二进制数,N,,总可以写成:,N= 2,E,M,,式中:,E,为数,N,的,阶码,,,M,为数,N,的,尾数,;,可见浮点数是由阶码和尾数两个部分组成的。,浮点数在计算机中的表示格式如下:,或,5,M,s,代表浮点数的符号,n,其位数反映浮点数的精度,k,其位数反映浮点数的表示范围,E,s,和,k,共同表示小数点的实际位置,E,s,E,k,-1,E,1,E,0,M,s,M,n,-1,M,1,M,0,E,阶码,M,尾数,阶符,数符,阶码的,数值部分,尾数的数值部分,小数点位置,浮点数的表示格式,6,原码规格化后的尾数 正数为,0.1,的形式,负数为,1.1,的形式,补码规格化后的尾数 正数为,0.1,的形式,负数为,1.0,的形式,规格化,同一个浮点数表示不唯一,如:,1.11,2,0,0.111,2,1,7,例将下列十进制数表示成浮点规格化数,阶码,4,位,(,含符号,),,分别用补码和移码表示;尾数,6,位,(,含符号,),,用补码表示(要求规格化)。,19/512 ,19/512,解: ,19/512=100112,9,=0.100112,4,阶码用补码表示为:,1100 010011,阶码用移码表示为:,0100 010011,19/512=,100112,9,=,0.100112,4,阶码用补码表示为:,1100 101101,阶码用移码表示为:,0100 101101,8,例 设浮点数的的阶码,6,位,(,含符号位,),,尾数为,10,位,(,含符号位,),,阶码和尾数都用,补码,表示,求其表示范围(规格化)。,表示范围,【,例题分析,】,阶码范围:,最小负数,最大负数,最小正数,最大正数,0,二进制补码,100000,111111,000001,011111,十进制真值,2,5,=,32,1,1,2,5,1=31,9,注意:,这里规格化尾数的最大负数的补码是,1.01,1,的形式,而不是,1.11,1,的形式,是因为,1.11,1,不是规格化数,,所以规格化尾数的最大负数应是 :,0.10,01,,,(,0.10,1),补,=1.01,1,即: ,(2,(n,1),2,1,),表示范围,规格化尾数表示范围如下:,最小负数,最大负数,最小正数,最大正数,0,二进制补码,1.000000000 1.011111111 0.100000000 0.111111111,十进制真值,1,(2,9,2,1,),2,1,1,2,9,10,浮点数的表示范围:,2,31,1,2,31,(1,2,9,),表示范围,11,根据以上分析若某机字长为,k,n,,其中阶码,k,位,(,含一位符号位,),,尾数,n,位,(,含一位符号位,),;,设,a,2,(k,1),1,(阶码的最大值),b,2,(k,1),(阶码的最小值),则规格化数所能表示的范围为:,最大正数:,(1,2,(n,1),)2,a,最小正数:,2,1,2,b,最大负数:,(2,(n,1),2,1,)2,b,(绝对值最小的负数),最小负数:,12,a,(绝对值最大的负数),阶码采用移码不影响表示范围,但机器数与补码表示时不同,浮点数的阶码决定了浮点数的表示范围;浮点数的尾数决定了浮点数的表示精度。,表示范围,12,练习,设机器数字长为,24,位,欲表示,3,万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各 取,1,位外,阶码、尾数各取几位?,满足,最大精度,可取,k,= 4,,,n,= 18,解:,k,= 4,,,5,,,6,,,15,位二进制数可反映,3,万之间的十进制数,2,15,= 32768,2,14,= 16384,2,15, 0.,?,位,13,x,=,111010,0000,例 将,58,表示成二进制定点数和浮点数,并写出它在定点机中的三种机器数和浮点机中阶码为移码、尾数为补码的形式(尾数,10,位,尾符,1,位,阶码含阶符,5,位)。,解:,二进制形式,定点表示,浮点规格化形式,x,原,= 1, 0000111010,x,补,= 1, 1111000110,x,反,= 1, 1111000101,x,原,= 0, 0110; 1. 1110100000,x,补,= 0, 0110; 1. 0001100000,x,反,= 0, 0110; 1. 0001011111,定点机中,浮点机中,x,阶移、尾补,= 1, 0110; 1. 0001100000,x,=, 111010,x,=,(0.1110100000),2,110,14,“,Father” of the IEEE 754 standard,现在所有计算机都采用,IEEE754,来表示浮点数,1970,年代后期, IEEE,成立委员会着手制定浮点数标准,1985,年完成浮点数标准,IEEE754,的制定,Prof. William Kahan,ieee754status/754story.html,This standard was primarily the work of one person, UC Berkeley math professor William Kahan.,直到,80,年代初,各个机器内部的浮点数表示格式还没有统一,因而相互不兼容,机器之间传送数据时,带来麻烦,15,单精度格式,: 32,位,符号位,1,位,阶码,E=8,位,尾数,M=23,位,双精度格式,: 64,位,符号位,1,位,,E=11,位, M=52,位,1,8,23,S,符号位,E,M,阶码,尾数,32,位单精度形式,1,11,52,S,符号位,E,M,阶码,尾数,64,位双精度形式,IEEE754,标准浮点数表示,16,阶码用移码、尾数用原码,因为规格化原码尾数的,最高为恒为,1,,为增加一位的精度,该,1,在尾数中不表示出来,计算时在尾数前面自动加,1.,IEEE754,标准浮点数表示,1,8,23,S,符号位,E,1.,M,(原码规格化),阶码,尾数,32,位单精度形式,单精度数所表示的数值为,(-1),s, 1.M 2,e,127,。,双精度数所表示的数值为,(-1),s, 1.M 2,e,1023,。,其中:,s=0,表示正数,,s=1,表示负数;,即,如果要表示一个数,需要把该数写成:,(-1),s, 1.M 2,(x),真值,而规格化浮点数形式是:,(-1),s, 0.1M 2,(128+x),移码,=,(-1),s, 1.M 2,(127+x),移码,相当于此时移码的计算不是加,128,,而是加,127,17,几个特殊数值:,当,E,的二进制位全为,1,时为特殊数值:此时,,若,M,的二进制位全为,0,,则,n,表示,无穷大,。若,S,为,1,则为负无穷大,若,S,为,0,则为正无穷大,;,若,M,的二进制位不全为,0,时,表示,NaN(Not a Number),,表示这不是一个合法实数。,E,为全,0,时:,M,全为,0,时,表示机器,0,;,M,不全为,0,时,表示非规格化的数。,单精度数,e,的取值为,1,254,(,8,位表示),,M,为,23,位,共,32,位;双精度数,e,的取值为,1,2046,(,11,位表示),,M,为,52,位,共,64,位。,IEEE754,标准浮点数表示,18,例 写出下列十进制数据的,IEEE754,编码,0.15625 ,5,解:,0.15625,转换成二进制值为,0.00101,,,在,IEEE754,中规格化表示为,1.012,3,,,e,127,3,124,,,IEEE754,编码为:,0,0,5,转换成二进制值为:,101,在,IEEE754,中规格化表示为,1.012,2,,,e,127,2,129,,,IEEE754,编码为:,1 100000000,IEEE754,标准浮点数表示,19,例 将十进制数,9,和,5/32,转换为,IEEE754,标准的单精度数,并用,8,位十六进制表示,解答,(1) 9= (-1),0,1001=(-1),0,2,3,1.001,=(-1),0,2,130-127,1.001,二进制代码为:,0,001,0000,0000,0000,0000,0000,即:,41100000H,解答,(2) 5/32= (-1),0,01012,-5,=(-1),0,2,-5,2,2,1.01,=(-1),0,2,124-127,1.01,二进制代码为:,0 01111100,010,0000,0000,0000,0000,0000,即:,3E200000H,IEEE754,标准浮点数表示,20,例 将,IEEE754,单精度数,(8,位十六进制表示,),转换为十进制数,(1) C0A00000H (2)3F880000H,解答,(1) C0A00000H,1 10000001,010,0000,0000,0000,0000,0000,(-1),1,(1.25)2,129-127,=-11.252,2,=-1.254=-5.0,解答,(2) 3F880000H,0,000,1000,0000,0000,0000,0000,(-1),0,(1.0625)2,127-127,=11.06252,0,=1.06251=1.0625,IEEE754,标准浮点数表示,21,小结,理解规格化的意义、,IEEE754,表示中隐含隐含尾数最高拉的意义;,给定一个真值,能用规格化浮点数表示该值,(,含,IEEE754,表示,),;,给定一个浮点数表示的机器数,(,含,IEEE754,表示,),,能计算其真值。,22,作业,3,3-1.,将下列十进制数表示成浮点规格化数,阶码,4,位(含符号),分别用补码和移码表示;尾数,6,位(含符号),用补码表示。,(,1,),19/512 (2) -19/512,3-2.,浮点数阶码,4,位,(,含阶符,),,尾数,9,位,(,含数符,),,均用补码表示,求规格化和非规格化时数值范围。,3-3.,设浮点数的格式为:第,15,位为符号位,第,14,位到第,8,位为阶码,采用补码表示;第,7,位到第,0,位为尾数,与符号位一起采用规格化的补码表示,基数为,2,。问:它能表示的正数和负数的数值范围是什么?,23,3-4.,假定一台,32,位字长的机器中带符号整数用补码表示,浮点数用,IEEE754,标准表示,寄存器,R1,和,R2,的内容分别为,R1,:,0000108BH,,,R2,:,8080108BH,。不同指令 对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器,R1,和,R2,的内容,则,R1,和,R2,中操作数的分别是多少?,(1),无符号数加法指令,(2),带符号数加法指令,(3),单精度 浮点数减法指令,24,3-5.,以下是,C,语言程序,用来计算一个数组,a,中每个元素之和。当参数,len,为,0,时,返回值应该是,0,,但在机器上执行时,却发生了存储器异常。分析原因并修改程序。,float,sum_elem(float,a,unsigned,len),int,i;,float,result=0;,for,(i=0;i=len-1;i+),result+=ai;,return,result;,25,Questions?,26,思考,定点整数、小数有原码、补码表示形式,手工在纸上怎么加减?举例分析,(,两正数相加、两负数相加、正负两个数相加,),。,计算机中表示数据的寄存寄或存储单元长度固定,如果运行结果超过这个长度会产生什么结果?什么情况下会发生超出表示范围的现象?这个结果能否被利用?试从计算机的角度来判断运算结果什么时候出错了?,自学:非数值数据的表示、十进制数的表示,(,特别是,8421,码、余,3,码、格雷码表示的意义和作用,),27,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!