电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

计算机组成原理第4章 浮点数运算方法

68页
  • 卖家[上传人]:206****923
  • 文档编号:88913399
  • 上传时间:2019-05-13
  • 文档格式:PPT
  • 文档大小:1.51MB
  • / 68 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第4章 浮点运算规则,浮点加减运算 浮点乘除法运算,浮点数的表示,机器中任何一个浮点数可写成: Mx为浮点数的尾数,一般为绝对值小于1的规格化数(补码表示时允许为-1),机器中可用原码或补码表示。 Ex为浮点数的阶码,一般为整数,机器中大多用补码或移码表示。 R为浮点数的基数,常用2、8 、10或16表示。以下以基数为2进行讨论。,浮点加减运算,设两个浮点数 尾数的加减运算规则与定点数完全相同。 当两浮点数阶码不等时,因两尾数小数点的实际位置不一样,尾数部分无法直接进行加减运算。如:x=0.123103 y=4.56102 = 0.456103,浮点加减运算的步骤,对阶,使两数的小数点位置对齐。 尾数求和,将对阶后的两尾数按定点加减运算规则求和(差)。 规格化,为增加有效数字的位数,提高运算精度,必须将求和(差)后的尾数规格化。 舍入,为提高精度,要考虑尾数右移时丢失的数值位。 判断结果 ,即判断结果是否溢出,1. 对阶,这一步操作是将两个加数的小数点对齐。 小阶向大阶看齐,阶码较小的数,其尾数向右移,每右移一位,阶码加“1”,直到两数阶码相同为止。 尾数右移时可能会发生数码丢失,影响

      2、精度。,例:两浮点数 x = 0.1101201, y = -(0.1010)211,求x+y。 (1)首先写出x、y在计算机中的补码表示。 x补=00,01;00.1101,y补=00,11;11.0110 阶码EX 尾数Mx Ey My (2)在进行加法前,必须先对阶,故先求阶差: E补=Ex补-Ey补=Ex补+-Ey补 = 00,01+11,01=11,10 即E=-2,表示x的阶码比y的阶码小,再按小阶向大阶看齐的原则,将x的尾数右移两位,其阶码加2。 得x补=00,11;00.0011(01) 此时,E=0,表示对阶完毕。,2. 尾数求和,将对阶后的两个尾数按定点加(减)运算规则进行运算。 注意:并不考虑溢出溢出由阶码决定 接上例,两数对阶后得: x补=00,11;00.0011(01) y补=00,11;11.0110 则Mx+My补=00.0011+11.0110=11.1001(01) 即x+y补=00,11;11.1001(01),3. 规格化,如果采用双符号位的补码,则 当M0时,其补码规格化形式为 M补=00.1 当M0时,其补码规格化形式为 M补=11.0 但对

      3、M0时,有两种情况需特殊处理。 M=-1/2,则M补=11.1000。对于补码而言,它不满足于上面的规格化表示式。为了便于硬件判断,特规定-1/2是规格化的数(对补码而言)。 M=-1,则M补=11.0000。因小数补码允许表示-1,故-1视为规格化的数。,规格化又分左规和右规两种。 左规。当尾数出现00.0或11.1时,需左规。左规时尾数左移一位,阶码减1,直到符合补码规格化表示式为止。 右规。当尾数出现01.或10.时,表示尾数溢出,这在定点加减运算中是不允许的,但在浮点运算中这不算溢出,可通过右规处理。右规时尾数右移一位,阶码加1。 接上例,求和结果为x+y补=00,11;11.1001(01) 尾数的第一数值位与符号位相同,需左规,即将其左移一位,同时阶码减1,得x+y补=00,10;(1)11.0010(1)。,4. 舍入,在对阶和右规的过程中,可能会将尾数的低位丢失,引起误差,影响精度,为此可用舍入法来提高尾数的精度。 进行舍入时应满足两个要求 首先,对每一次运算的结果而言,要保证误差不超过给定的范围。比如,设机器尾数长39位,要求每次运算误差不超过末位(即第39位)的“1

      4、”,即小于 2-39。 其次在大量的运算过程中要保证误差的平衡,即在每一次运算时,由于舍入处理,可能使运算结果增大了,也可能减少了。但总的说来,增加和减少的机会必需是均等的,否则会产生很大的积累误差。,4. 舍入常用的舍入方法,“0舍1入”法:“0舍1入”法类似于十进制运算中的“四舍五入”法,即在尾数右移时,被移去的最高数值位为0,则舍去;被移去的最高数值位为1,则在尾数的末位加1。这样做可能使尾数又溢出,此时需再做一次右规。 特点:最大误差是最低位上的-1/2到接近于1/2之间,正误差可以和负误差抵消。属于比较理想的方法,但实现起来比较复杂。 如上例: x+y补=00,10;(1)11.0010(1) = 00,10;11.0011 “恒置1”法:尾数右移时,不论丢掉的最高数值位是“1”或“0”,都使右移后的尾数末位恒置“1”。这种方法同样有使尾数变大和变小的两种可能。 特点:误差范围扩大,但正负误差可以相互抵消,实现相对容易。,5. 溢出判断,在浮点规格化中已指出,当尾数之和(差)出现01.或10.时,并不表示溢出,只有将此数右规后,再根据阶码来判断浮点运算结果是否溢出。 若机器数

      5、为补码,尾数为规格化形式,并假设阶符取2位,阶码取7位,数符取2位,尾数取n位,则它们能表示的补码在数轴上的表示范围如下图。,A最小负数 2+127(-1) B最大正数 2+127(1-2-n) a最大负数 2-128(-2-1-2-n) b最小正数 2-1282-1,浮点机的溢出与否可由阶码的符号决定。即 阶码E补=01,为上溢。 阶码E补=10,为下溢,按机器零处理。 当阶符为“01”时,需做溢出处理。 下溢时,浮点数值趋于零,故机器不做溢出处理,仅把它作为机器零。 上溢时才是浮点数真正溢出,机器需停止运算,作溢出中断处理。 一般所说的浮点溢出,均是指上溢。,例:设x=2-101(-0.101000),y=2-100(+0.111011),并假设阶符取2位,阶码取3位,数符取2位,尾数取6位,求x-y。 解:由x=2-101(-0.101000),y=2-100(+0.111011) 得x补=11,011;11.011000,y补=11,100;00.111011 对阶 E补=Ex补-Ey补=11,011+00,100=11,111 即E=-1,则x的尾数向右移一位,阶码相应加1,

      6、即 x补=11,100;11.101100 求和 Mx补-My补=Ex补+-Ey补 =11.101100+11.000101 =10.110001 即 x-y补=11,100;10.110001 尾数符号位出现“10”,需右规。,(续) : 即 x-y补=11,100;10.110001, 尾数符号位出现“10”,需右规。 规格化 右规后得 x-y补=11,101;(1)1.011000(1) 舍入处理 采用0舍1入法,其尾数右规时末位丢1,则 x-y补=11,101;11.011001 溢出判断 经舍入处理后阶符为“11”,不溢出,故最终结果: x-y= 2-011(-0.100111),浮点数加减运算流程图,浮点加减法运算,大型计算机和高档微型机中,浮点加减法运算是由硬件完成的。低档的微型机浮点加减法运算是由软件完成的,但无论用硬件实现或由软件实现加减法运算,基本原理是一致的。 浮点加减法运算要经过对阶、尾数求和、规格化、舍入和溢出判断五步操作。其中尾数运算与定点加减法运算相同,而对阶、舍入、规格化和溢出判断,则是浮点加减法与定点加减法运算不同的操作。 在补码浮点运算中,阶码与尾数

      7、可以都用补码表示。在硬件实现的运算中,阶符和数符常常采取双符号位,正数数符用00表示,负数数符用11表示。,浮点乘除法运算,设两浮点数 则 阶码运算 尾数运算,1. 阶码运算,若阶码用补码运算,乘积的阶码为jx补+jy补,商的阶码为jx补-jy补。 若阶码用移码运算,则 jx移=2n+ jx -2njx2n (n为整数的位数) jy移=2n+ jy -2njy2n (n为整数的位数) 所以jx移+jy移= 2n+ jx +2n+ jy = 2n+ (2n +( jx + jy)= 2n+jx + jy移 可见,直接用移码求阶码和时,其最高位多加了一个2n,要得到移码形式的结果,必须减去2n。,由于同一个真值的移码和补码其数值部分完全相同,而符号位正好相反,即 jy补=2n+1+ jy (mod 2n+1) 因此如果求阶码和可用下式完成: jx移+jy补= 2n+ jx +2n+1+ jy = 2n+ 2n +( jx + jy) = jx + jy移 (mod 2n+1) 则直接可得移码形式。 同理,当作除法运算时,商的阶码可用下式完成: jx移+-jy补 = jx - jy移,阶码运

      8、算,阶码运算方法:进行移码加减运算时,只需将移码表示的加数或减数的符号位取反(即变为补码),然后进行运算,就可得阶和(或阶差)的移码。 溢出判断:在原有移码符号位的前面(即高位)再增加位符号位,并规定该位恒用“0”表示,而加数或减数的补码的两位符号位则一致。 溢出的条件是运算结果移码的最高符号位为1。此时若低位符号位为0,表示上溢;低位符号位为1,表示下溢。 如果运算结果移码的最高符号位为0,即表明没溢出。此时若低位符号位为1,表明结果为正:低位符号位为0,表示结果为负。,阶码运算,溢出判断举例: 设阶码取三位(不含符号位), 当jx=+101,jy=+110时,有 jx移=01,101, jy补=00,110 则: jx +jy移=jx移+ jy补=01,101+00,110=10,001 结果上溢 jx -jy移=jx移+ -jy补=01,101+11,100=01,001 结果+1,2. 尾数运算,(1)浮点乘法尾数运算 (2)浮点除法尾数运算,(1)浮点乘法尾数运算,预处理:检测两个尾数中是否有一个为0,若有一个为0,乘积必为0,不再作其他操作;如果两尾数均不为0,则可进行乘法

      9、运算。 相乘:两个浮点数的尾数相乘可以采用定点小数的任何一种乘法运算来完成。 规格化:相乘结果可能要进行左规,左规时调整阶码后如果发生阶下溢,则作机器零处理;如果发生阶上溢,则作溢出处理。,尾数截断:尾数相乘会得到一个双倍字长的结果,若限定只取1倍字长,则乘积的若干低位将会丢失。如何处理丢失的各位值,通常有两种办法。 截断处理:无条件的丢掉正常尾数最低位之后的全部数值。 舍入处理:按浮点加减运算讨论的舍入原则进行舍入处理。,(1)浮点乘法尾数运算,舍入处理 对于原码,采用0舍1入法时,不论其值是正数或负数,“舍”使数的绝对值变小,“入”使数的绝对值变大。 对于补码,采用0舍1入法时,若丢失的位不是全0,对正数来说,“舍”、“入”的结果与原码正好相同;对负数来说,“舍”、“入”的结果与原码分析正好相反,即“舍”使绝对值变大,“入”使绝对值变小。 为了使原码、补码舍入处理后的结果相同,对负数的补码可采用如下规则进行舍入处理。 当丢失的各位均为0时,不必舍入; 当丢失的各位数中的最高位为0时,且以下各位不全为0;或丢失的各位数中的最高位为1,且以下各位均为0时,则舍去被丢失的各位; 当丢失的各位数中的最高位为1,且以下各位又不全为0时;则在保留尾数的最末位加1修正。,舍入操作实例,对负数的补码可采用如下规则进行舍入处理。 当丢失的各位均为0时,不必舍入; 当丢失的各位数中的最高位为0时,且以下各位不全为0;或丢失的各位数中的最高位为1,且以下各位均为0时,则舍去被丢失的各位; 当丢失的各位数中的最高位为1,且以下各位又不全为0时;则在保留尾数的最末位加1修正。,浮点乘法运算举例,例:设机器数阶码取3位(不含阶符),尾数取7位(不舍数符),要求阶码用移码运算,尾数用补码运算,最后结果保留1倍字长。 设x=2-1010.0110011),y=201

      《计算机组成原理第4章 浮点数运算方法》由会员206****923分享,可在线阅读,更多相关《计算机组成原理第4章 浮点数运算方法》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.