浮点数的表示格式规格化IEEE754课件

上传人:痛*** 文档编号:241947609 上传时间:2024-08-07 格式:PPT 页数:37 大小:687.28KB
返回 下载 相关 举报
浮点数的表示格式规格化IEEE754课件_第1页
第1页 / 共37页
浮点数的表示格式规格化IEEE754课件_第2页
第2页 / 共37页
浮点数的表示格式规格化IEEE754课件_第3页
第3页 / 共37页
点击查看更多>>
资源描述
问题n写出写出+0.125,-0.125的补码和移码表示。为什么用补码,移的补码和移码表示。为什么用补码,移码?码?n如何表示即有整数又有小数的数值数据,如如何表示即有整数又有小数的数值数据,如12.25?n12.25用浮点数怎么表示?用浮点数怎么表示?n为什么要对浮点数进行规格化?为什么要对浮点数进行规格化?问题写出+0.125,-0.125的补码和移码表示。为什么引入引入n定点表示法的特点定点表示法的特点n定点数表示数的范围受字长限制,表示数的范围有定点数表示数的范围受字长限制,表示数的范围有限限;n定点表示的精度有限;定点表示的精度有限;n机器中,常用定点数表示纯整数和纯小数,表示即机器中,常用定点数表示纯整数和纯小数,表示即有整数又有小数时比较麻烦。有整数又有小数时比较麻烦。引入定点表示法的特点Lecture 3 浮点数表示Lecture 3 浮点数表示课程结构计算机系算机系统统计硬件硬件运算器运算器数据表示数据表示数据数据数据数据定点定点原原码反反码补码移移码浮点浮点一般表示一般表示规格化格化IEEE754非数非数值数据数据校校验码运算方法运算方法运算器运算器存存储器器控制器控制器总线输入入输出出软硬件接口硬件接口软件件课程结构计算机系统统计硬件运算器数据表示数据数据定点原码反码主要内容n浮点数的表示格式浮点数的表示格式n规格化规格化nIEEE754主要内容浮点数的表示格式浮点数的表示格式浮点数的表示格式 对任意一个二进制数对任意一个二进制数N,总可以写成:,总可以写成:N=2EM,式中:,式中:E为数为数N的的阶码阶码,M为数为数N的的尾数尾数;可见浮点数是由阶码和尾数两个部分组成的。可见浮点数是由阶码和尾数两个部分组成的。浮点数在计算机中的表示格式如下:浮点数在计算机中的表示格式如下:或或或或浮点数的表示格式 对任意一个二进制数N,总可以写成:NMs 代表浮点数的符号代表浮点数的符号n 其位数反映浮点数的精度其位数反映浮点数的精度k 其位数反映浮点数的表示范围其位数反映浮点数的表示范围Es 和和 k 共同表示小数点的实际位置共同表示小数点的实际位置Es Ek-1 E1E0 Ms Mn-1 M1M0 E 阶码阶码M 尾数尾数阶符阶符数符数符阶码的阶码的数值部分数值部分尾数的数值部分尾数的数值部分小数点位置小数点位置浮点数的表示格式浮点数的表示格式Ms 代表浮点数的符号n x=1110100000例例 将将 58 表示成二进制定点数和浮点数,并写出它在表示成二进制定点数和浮点数,并写出它在16位定点机中的三种机器数和浮点机中阶码为移码、尾位定点机中的三种机器数和浮点机中阶码为移码、尾数为补码的形式(尾数数为补码的形式(尾数10位,尾符位,尾符1位,阶码含阶符位,阶码含阶符5位)位)。解:解:二进制形式二进制形式定点表示定点表示浮点形式浮点形式x原原=1,0000000 00111010 x补补=1,1111111 11000110 x反反=1,1111111 11000101阶阶原原=0,0110阶阶补补=0,0110阶阶移移=1,0110定点机中定点机中浮点机中浮点机中x阶移、尾补阶移、尾补=1,0110;1.0001100000 x=111010 x=(0.1110100000)2110尾尾原原=1.1110100000尾尾补补=1.0001100000存放在存存放在存储器中形储器中形式为式为B460Hx=1110100000例 将主要内容n浮点数的表示格式浮点数的表示格式n规格化规格化nIEEE754主要内容浮点数的表示格式原码规格化后的尾数原码规格化后的尾数正数为正数为0.1的形式的形式负数为负数为1.1的形式的形式补码规格化后的尾数补码规格化后的尾数正数为正数为0.1的形式的形式负数为负数为1.0的形式的形式规格化格化同一个浮点数表示不唯一,如:1.11 20,0.111 21使使|x|=0.5(|x|=0.5(不绝对,如尾数不绝对,如尾数1.10000B1.10000B表示表示-0.5-0.5,但不是规格化的,但不是规格化的原码规格化后的尾数 正数为 0.1的形式规格化同例例将将下下列列十十进进制制数数表表示示成成浮浮点点规规格格化化数数,阶阶码码4 4位位(含含符符号号),分分别别用用补补码码和和移移码码表表示示;尾尾数数6 6位位(含含符符号号),用用补补码码表表示(要求规格化)。示(要求规格化)。19/512 19/512 19/51219/512 解:解:19/512=10011219/512=1001129 9=0.100112=0.1001124 4 阶码用补码表示为:阶码用补码表示为:1100 010011 1100 010011 阶码用移码表示为:阶码用移码表示为:0100 0100110100 010011 19/512=19/512=1001121001129 9=0.1001120.1001124 4 阶码用补码表示为:阶码用补码表示为:1100 101101 1100 101101 阶码用移码表示为:阶码用移码表示为:0100 1011010100 101101例将下列十进制数表示成浮点规格化数,阶码4位(含符号),分例例 设设浮浮点点数数的的的的阶阶码码6 6位位(含含符符号号位位),尾尾数数为为1010位位(含含符符号号位位),阶阶码码和和尾尾数数都都用用补补码码表表示示,求求其其表表示示范范围围(规规格化)。格化)。表示范表示范围【例题分析例题分析】阶码范围:阶码范围:最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 0 二进制补码二进制补码 100000 111111 000001 011111 十进制真值十进制真值 25=32 1 1 251=31 例 设浮点数的的阶码6位(含符号位),尾数为10位(含符号n注意:注意:这里规格化尾数的最大负数的补码是这里规格化尾数的最大负数的补码是1.011的形式,而的形式,而不是不是1.111的形式,是因为的形式,是因为1.111不是规格化数,不是规格化数,n所以规格化尾数的最大负数应是所以规格化尾数的最大负数应是:0.1001,(0.101)补补=1.011即:即:(2(n1)21)表示范围表示范围 规格化尾数表示范围如下:规格化尾数表示范围如下:最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 0 二进制补码二进制补码 1.000000000 1.011111111 0.100000000 0.111111111 十进制真值十进制真值 1 (2921)21 129 注意:这里规格化尾数的最大负数的补码是1.011的形式,而n浮点数的表示范围:浮点数的表示范围:2311231(129)表示范围表示范围浮点数的表示范围:2311 231(129)根根据据以以上上分分析析若若某某机机字字长长为为kn,其其中中阶阶码码k位位(含含一一位位符符号号位位),尾数,尾数n位位(含一位符号位含一位符号位);设设a2(k1)1(阶码的最大值)(阶码的最大值)b2(k1)(阶码的最小值)(阶码的最小值)则规格化数所能表示的范围为:则规格化数所能表示的范围为:最大正数:最大正数:(12(n1)2a最小正数:最小正数:212b最大负数:最大负数:(2(n1)21)2b(绝对值最小的负数)(绝对值最小的负数)最小负数:最小负数:12a(绝对值最大的负数)(绝对值最大的负数)阶码采用移码不影阶码采用移码不影响表示范围,但机响表示范围,但机器数与补码表示时器数与补码表示时不同不同浮点数的阶码决定了浮点数的表示范围;浮点数的尾数决浮点数的阶码决定了浮点数的表示范围;浮点数的尾数决定了浮点数的表示精度。定了浮点数的表示精度。表示范围表示范围 根据以上分析若某机字长为kn,其中阶码k位(含一位练习练习 设机器数字长为设机器数字长为 24 位,欲表示位,欲表示3万的十进制数,万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各试问在保证数的最大精度的前提下,除阶符、数符各 取取1 位外,阶码、尾数各取几位?位外,阶码、尾数各取几位?满足满足 最大精度最大精度 可取可取 k=4,n=18解:解:k=4,5,6,15 位二进制数可反映位二进制数可反映 3 万之间的十进制数万之间的十进制数 215=32768214=16384215 0.?位位练习 设机器数字长为 24 位,欲表示3万的十主要内容n浮点数的表示格式浮点数的表示格式n规格化规格化nIEEE754主要内容浮点数的表示格式“Father”of the IEEE 754 standard现在所有计算机都采用现在所有计算机都采用IEEE754来表示浮点数来表示浮点数1970年代后期,IEEE成立委员会着手制定浮点数标准1985年完成浮点数标准IEEE754的制定Prof.William Kahan www.cs.berkeley.edu/wkahan/ieee754status/754story.htmlThis standard was primarily the work of one person,UC Berkeley math professor William Kahan.直到80年代初,各个机器内部的浮点数表示格式还没有统一 因而相互不兼容,机器之间传送数据时,带来麻烦“Father”of the IEEE 754 standn单精度格式单精度格式:32:32位位,符号位符号位1 1位,阶码位,阶码 E=8E=8位位,尾数尾数M=23M=23位位n双精度格式双精度格式:64:64位位,符号位符号位1 1位,位,E=11E=11位位,M=52,M=52位位1823S S符号位符号位EM阶码阶码尾数尾数32位单精度形式位单精度形式11152S S符号位符号位EM阶码阶码尾数尾数64位双精度形式位双精度形式IEEE754IEEE754标准浮点数表示标准浮点数表示单精度格式:32位,符号位1位,阶码 E=8位,尾数Mn阶码用移码、尾数用原码,因为规格化原码尾数的阶码用移码、尾数用原码,因为规格化原码尾数的最高为恒为最高为恒为1,为增加一,为增加一位的精度,该位的精度,该1在尾数中不表示出来,计算时在尾数前面自动加在尾数中不表示出来,计算时在尾数前面自动加1.IEEE754IEEE754标准浮点数表示标准浮点数表示1823S S符号位符号位E1.M(原码规格化)(原码规格化)阶码阶码尾数尾数32位单精度形式位单精度形式单精度数所表示的数值为单精度数所表示的数值为 (-1)(-1)s s 1.M 1.M 2 2e e127127。双精度数所表示的数值为双精度数所表示的数值为 (-1)(-1)s s 1.M 2 1.M 2e e10231023。其中:其中:s=0s=0表示正数,表示正数,s=1s=1表示负数;表示负数;即,如果要表示一个数,需要把该数写成:即,如果要表示一个数,需要把该数写成:(-1)(-1)s s 1.M 2 1.M 2(x)(x)真值真值 而规格化浮点数形式是:而规格化浮点数形式是:(-1)(-1)s s 0.1M 2 0.1M 2(128+x)(128+x)移码移码 =(-1)(-1)s s 1.M 2 1.M 2(127+x)(127+x)移码移码相当于此时移码相当于此时移码的计算不是加的计算不是加128128,而是加,而是加127127e=127+xe=127+x阶码用移码、尾数用原码,因为规格化原码尾数的最高为恒为1,为n几个特殊数值:几个特殊数值:n当当E的二进制位全为的二进制位全为1时为特殊数值:此时,时为特殊数值:此时,n若若M的二进制位全为的二进制位全为0,则,则n表示表示无穷大无穷大。若。若S为为1则为负则为负无穷大,若无穷大,若S为为0则为正无穷大则为正无穷大;n若若M的二进制位不全为的二进制位不全为0时,表示时,表示NaN(NotaNumber),表示这不是一个合法实数。表示这不是一个合法实数。nE为全为全0时:时:M全为全为0时,表示机器时,表示机器0;M不全为不全为0时,时,表示非规格化的数。表示非规格化的数。n单精度数单精度数e的取值为的取值为1254(8位表示),位表示),M为为23位,位,共共32位;双精度数位;双精度数e的取值为的取值为12046(11位表示),位表示),M为为52位,共位,共64位。位。IEEE754IEEE754标准浮点数表示标准浮点数表示几个特殊数值:IEEE754标准浮点数表示n例 写出下列十进制数据的IEEE754编码n 0.15625 5 解:0.15625转换成二进制值为0.00101,n在IEEE754中规格化表示为1.0123,e1273124,nIEEE754编码为:0 01111100 01000000000000000000000n5转换成二进制值为:101n在IEEE754中规格化表示为1.0122,e1272129,nIEEE754编码为:1 10000001 01000000000000000000000IEEE754IEEE754标准浮点数表示标准浮点数表示例 写出下列十进制数据的IEEE754编码IEEE754标例例 将十进制数将十进制数9 9和和5/325/32转换为转换为IEEE754IEEE754标准的单精度数标准的单精度数,并用并用8 8位十六进位十六进制表示制表示n解答解答(1)9=(-1)(1)9=(-1)0 01001=(-1)1001=(-1)0 0223 3 1.0011.001 =(-1)=(-1)0 022130-127 130-127 1.0011.001 二进制代码为:二进制代码为:0 0 1000001010000010 001 001000000000000000000000000000000000000 0000 即:即:41100000H41100000Hn解答解答(2)5/32=(-1)(2)5/32=(-1)0 00101201012-5-5 =(-1)=(-1)0 022-5-5222 21.011.01 =(-1)=(-1)0 022124-127 124-127 1.011.01 二进制代码为:二进制代码为:0 011111000 01111100 010 010000000000000000000000000000000000000 0000 即:即:3E200000H3E200000HIEEE754IEEE754标准浮点数表示标准浮点数表示例 将十进制数9和5/32转换为IEEE754标准的单精n例例 将将IEEE754IEEE754单精度数单精度数(8(8位十六进制表示位十六进制表示)转换为十进制数转换为十进制数n(1)C0A00000H (2)3F880000H(1)C0A00000H (2)3F880000Hn解答解答(1)C0A00000H(1)C0A00000H1 100000011 10000001 010 0100000000000000000000000000000000000000000(-1)(-1)1 1(1.25)2(1.25)2129-127129-127=-11.252=-11.2522 2 =-1.254=-5.0=-1.254=-5.0n解答解答(2)3F880000H(2)3F880000H 0 0 0111111101111111 000 0001000100000000000000000000000000000000000(-1)(-1)0 0(1.0625)2(1.0625)2127-127127-127=11.06252=11.062520 0 =1.06251=1.0625=1.06251=1.0625 IEEE754IEEE754标准浮点数表示标准浮点数表示例 将IEEE754单精度数(8位十六进制表示)转换为十进IEEE754的表示范围(单精度)数符数符阶码阶码尾数尾数真值真值最大正数0111111101111(2-2-23)2127最小正数00000000100001 2-126绝对值最大的负数(最小负数)11111111011.11-(2-2-23)2127绝对值最小的负数(最大负数)10000000100.00-1 2-126IEEE754的表示范围(单精度)数符阶码尾数真值最大正数0阶码用移码表示的益处n直接可以由移码的表示形式看出对应数值的大小(这里是把移码当做无符号数来比较大小的,而不必考虑符号,这里比用补码好多了,补码是要变换成原码再比较的)n其次,用移码表示的话,简化了对于“0”的判断,即当移码的各位都为0的话,那么该移码对应的数据是能够表示的数据中的最小值。阶码用移码表示的益处直接可以由移码的表示形式看出对应数值的大小结n理解规格化的意义、理解规格化的意义、IEEE754表示中隐含隐含尾数最高拉表示中隐含隐含尾数最高拉的意义;的意义;n给定一个真值,能用规格化浮点数表示该值给定一个真值,能用规格化浮点数表示该值(含含IEEE754表表示示);n给定一个浮点数表示的机器数给定一个浮点数表示的机器数(含含IEEE754表示表示),能计算其,能计算其真值。真值。小结理解规格化的意义、IEEE754表示中隐含隐含尾数最高拉浮点数精度问题n1994年年11月间各报纸有关月间各报纸有关Pentium处理器浮点瑕疵问题的处理器浮点瑕疵问题的报告。报告。Pentium芯片中浮点除法存在的问题甚至上了电视芯片中浮点除法存在的问题甚至上了电视节目节目DavidLeetermanLateShow的十大新闻排行榜。为的十大新闻排行榜。为了换回所有问题芯片,了换回所有问题芯片,Intel一共为此损失了一共为此损失了3亿美元的资金。亿美元的资金。浮点数精度问题1994年11月间各报纸有关Pentium处理浮点数的溢出浮点数的溢出作业33-1.将下列十进制数表示成浮点规格化数,阶码将下列十进制数表示成浮点规格化数,阶码4位(含符号)位(含符号),分别用补码和移码表示;尾数,分别用补码和移码表示;尾数6位(含符号),用补码表位(含符号),用补码表示。示。(1)19/512(2)-19/5123-2.浮点数阶码浮点数阶码4位位(含阶符含阶符),尾数,尾数9位位(含数符含数符),均用补码表,均用补码表示,求用规格化和用非规格化表示时能够表示的数值范围。示,求用规格化和用非规格化表示时能够表示的数值范围。3-3.设浮点数的格式为:第设浮点数的格式为:第15位为符号位,第位为符号位,第14位到第位到第8位为位为阶码,采用补码表示;第阶码,采用补码表示;第7位到第位到第0位为尾数,与符号位一位为尾数,与符号位一起采用规格化的补码表示,基数为起采用规格化的补码表示,基数为2。问:它能表示的正数。问:它能表示的正数和负数的数值范围是什么?和负数的数值范围是什么?作业33-1.将下列十进制数表示成浮点规格化数,阶码4位(n3-4.假定一台假定一台32位字长的机器中带符号整数用补码表示,位字长的机器中带符号整数用补码表示,浮点数用浮点数用IEEE754标准表示,寄存器标准表示,寄存器R1和和R2的内容分别为的内容分别为R1:0000108BH,R2:8080108BH。不同指令。不同指令对寄存器对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器的真值不同。假定执行下列运算指令时,操作数为寄存器R1和和R2的内容,则的内容,则R1和和R2中操作数的分别是多少?中操作数的分别是多少?(1)无符号数加法指令无符号数加法指令(2)带符号数加法指令带符号数加法指令(定点整数定点整数)(3)带符号数加法指令带符号数加法指令(定点小数定点小数)(3)单精度单精度浮点数减法指令浮点数减法指令3-4.假定一台32位字长的机器中带符号整数用补码表示,浮3-5.float型整数据常用型整数据常用IEEE754单精度浮点格式表示,单精度浮点格式表示,假设两个假设两个float型变量型变量x和和y分别在分别在32为寄存器为寄存器f1和和f2中,中,若(若(f1)=CC900000H,(f2)=B0C00000H,则则x和和y之间的关系为之间的关系为()Axy且符号相同且符号相同Bxy且符号且符号相同相同Dxy且符号不同且符号不同3-6.float型数据通常用型数据通常用IEEE754单精度浮点数格式表示,单精度浮点数格式表示,若编译器将若编译器将float型变量型变量x分配在一个分配在一个32位浮点寄存器位浮点寄存器FR1中,且中,且x=-8.25,则,则FR1的内容是多少?的内容是多少?3-5.float型整数据常用IEEE754单精度浮点格式n3-7.以下是以下是C语言程序,用来计算一个数组语言程序,用来计算一个数组a中每个元素之中每个元素之和。当参数和。当参数len为为0时,返回值应该是时,返回值应该是0,但在机器上执行时,但在机器上执行时,却发生了存储器异常。分析原因并修改程序。却发生了存储器异常。分析原因并修改程序。floatsum_elem(floata,unsignedlen)inti;floatresult=0;for(i=0;i=len-1;i+)result+=ai;returnresult;3-7.以下是C语言程序,用来计算一个数组a中每个元素之和n#includestdafx.hn#includenusingnamespacestd;nint_tmain(intargc,_TCHAR*argv)nnfloati=8.1,j=8.0;nintk=0;nwhile(i!=j)ni/=10;j/=10;nk+;ncoutfloat:kendl;ndoublem=8.1,n=8.0;nk=0;nwhile(m!=n)nm/=10;n/=10;nk+;ncoutdouble:kendl;n思考!提示:IEEE754中的最小正值附近:(1+2-23)2(1-127),其精度约2-149约10-44.85#include stdafx.h思考!提示:IEEE7Questions?Questions?思考n定点整数、小数有原码、补码表示形式,手工在纸上怎么定点整数、小数有原码、补码表示形式,手工在纸上怎么加减?举例分析加减?举例分析(两正数相加、两负数相加、正负两个数相两正数相加、两负数相加、正负两个数相加加)。nx原原+y原原=?x+y原原;x原原+-y原原=?x-y原原nx补补+y补补=?x+y补补;x补补+-y补补=?x-y补补n计算机中表示数据的寄存寄或存储单元长度固定,如果运计算机中表示数据的寄存寄或存储单元长度固定,如果运行结果超过这个长度会产生什么结果?什么情况下会发生行结果超过这个长度会产生什么结果?什么情况下会发生超出表示范围的现象?这个结果能否被利用?试从计算机超出表示范围的现象?这个结果能否被利用?试从计算机的角度来判断运算结果什么时候出错了?的角度来判断运算结果什么时候出错了?思考定点整数、小数有原码、补码表示形式,手工在纸上怎么加减?思考n设设X=-0.1010Y=0.0101求求(X+Y)补补和和(X-Y)补补n设机器数字长为设机器数字长为 8 位(含位(含 1 位符号位)位符号位),且且 A=97,B=+41,用补码求,用补码求 A B.自学:非数值数据的表示、十进制数的表示自学:非数值数据的表示、十进制数的表示(特别特别是是84218421码、余码、余3 3码、格雷码表示的意义和作用码、格雷码表示的意义和作用)思考设X=-0.1010 Y=0.0101 求(X+Y)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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