运算部件与数据的运算.PPTVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
运算部件与数据的运算

浮点数加/减运算 十进制科学计数法的加法例子 0.123 × 105 + 0. 560 ×102 其计算过程为: 0.123 ×105 + 0.560 ×102 = 0.123 ×105 + 0.000560 ×105 =(0.123 + 0.00056) ×105 = 0.12356 ×105 =0.124 ×105 “对阶”操作:目的是使两数阶码相等 小阶向大阶看齐,阶小的那个数的尾数右移,右移位数等于两个阶码差的绝对值 IEEE 754尾数右移时,要将隐含的“1”移到小数部分,高位补0,移出的低位保留到特定的“附加位”上 进行尾数加减运算前,必须“对阶”!最后还要考虑舍入 计算机内部的二进制运算也一样! 浮点数加/减运算-对阶 通过计算[?E]补来判断两数的阶差: [?E]补= [Ex–Ey]补= [Ex]移 + [–[Ey]移]补 (mod 2n) 问题:在?E为何值时无法根据[?E]补来判断阶差? 问题:如何对阶? 溢出时! 例如,Ex=7,Ey=-7,则[?E]补=1111+1111=1110,?E0,错! 问题:对IEEE754 SP格式来说, |?E|大于多少时结果就等于阶大的那个数 ? 1.xx…x → 0.00…01xx…x(右移24位后,尾数变为0) 24! 浮点数加减法基本要点 (假定:Xm、Ym分别是X和Y的尾数, Xe和Ye 分别是X和Y的阶码 ) (1) 求阶差:?e=Ye – Xe (假定 Ye Xe,则结果的阶码为Ye) (2) 对阶:将Xm右移?e位,尾数变为 Xm 2 Xe-Ye(保留右移部分:附加位) (3) 尾数加减: Xm 2 Xe-Ye ± Ym (4) 规格化: 当尾数高位为0,则需左规:尾数左移一次,阶码减1,直到MSB为1 每次阶码减1后要判断阶码是否下溢(比最小可表示的阶码还要小) 当尾数最高位有进位,需右规:尾数右移一次,阶码加1,直到MSB为1 每次阶码加1后要判断阶码是否上溢(比最大可表示的阶码还要大) 如果尾数比规定位数长,则需考虑舍入(有多种舍入方式) 若尾数是0,则需要将阶码也置0。为什么? 阶码溢出异常处理:阶码上溢,则结果溢出;阶码下溢,则结果为0 尾数为0说明结果应该为0,即:阶码和尾数为全0。 浮点数加法运算举例 Example:用二进制形式计算 0.5 +(– 0.4375) =? 对 阶: -1.110 x 2-2 → -0.111 x 2-1 加 减: 1.000 x 2-1 +( -0.111 x 2-1 ) = 0.001 x 2-1 规格化: 0.001 x 2-1 → 1.000 x 2–4 判溢出: 无 解:0.5 = 1.000 x 2-1, - 0.4375 = -1.110 x 2-2 结果为: 1.000 x 2–4 = 0.0001000 = 1/16 = 0.0625 问题:为何IEEE 754 加减运算右规时最多只需一次? 因为即使是两个最大的尾数相加,得到的和的尾数也不会达到4,故尾数的整数部分最多有两位,保留一个隐含的“1”后,最多只有一位被右移到小数部分。 IEEE 754 浮点数加法运算 在计算机内部执行上述运算时,必须解决哪些问题? (1) 如何表示? (2) 如何判断阶码的大小?求[ΔE]补=? (3) 对阶后尾数的隐含位如何处理? (4) 如何进行尾数加减? (5) 何时需要规格化,如何规格化? (6) 如何舍入? (7) 如何判断溢出? 用IEEE754标准! 右移到数值部分,高位补0,保留移出低位部分 隐藏位还原后,按原码进行加减运算,附加位一起运算 ±1x .xx……x 形式时,则右规: 尾数右移1位, 阶码加1 ± 0.0…01x…x 形式时,则左规: 尾数左移k位, 阶码减k 最终须把附加位去掉,此时需考虑舍入(IEEE754有四种舍入方式) 若最终阶码为全1,则上溢;若尾数为全0,则下溢 已知x=0.5, y=-0.4375, 求x+y=? (用IEEE754标准单精度格式计算) 解: x=0.5=1/2=(0.100...0)2=(1.00...0)2x2-1 y=-0.4325=(-0.01110...0)2=(-1.110..0)2x2-2 [x]浮=000…0 [y]浮=1110…0 对阶: [ΔE]补=0111 1110 + 1000 0011=0000

文档评论(0)

jinchenl + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档