浮点加法减法运算.docVIP

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

浮点加法、减法运算          设有两个浮点数x和y,它们分别为 x=2Ex·Mx y=2Ey·My   其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。   两浮点数进行加法和减法的运算规则是 x±y=(Mx2Ex-Ey±My)2Ey,  Ex=Ey (2.39)   完成浮点加减运算的操作过程大体分为四步:         1. 0 操作数的检查;         2. 比较阶码大小并完成对阶;         3. 尾数进行加或减运算;         4. 结果规格化并进行舍入处理。   浮点加减运算的操作流程 ? (1) 0 操作数检查 浮点加减运算过程比定点运算过程复杂。如果判知两个操作数x或y中有一个数为0,即可得 知运算结果而没有必要再进行后续的一系列操作以节省运算时间。0操作数检查步骤则用来 完成这一功能。 (2) 比较阶码大小并完成对阶 两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对齐。若二数阶码相 同,表示小数点是对齐的,就可以进行尾数的加减运算。反之,若二数阶码不同,表示小数点 位置没有对齐,此时必须使二数阶码相同,这个过程叫作对阶。要对阶,首先应求出两数阶 码Ex和Ey之差,即 △E = Ex-Ey 若△E=0,表示两数阶码相等,即Ex=Ey;若△E0,表示ExEy;若△E0,表示ExEy。 当Ex≠Ey 时,要通过尾数的移动以改变Ex或Ey,使之相等。原则上,既可以通过Mx移位 以改变Ex来达到Ex=Ey,也可以通过My移位以改变Ey来实现Ex=Ey。但是,由于浮点 表示的数多是规格化的,尾数左移会引起最高有效位的丢失,造成很大误差。尾数右移虽引起 最低有效位的丢失,但造成误差较小。因此,对阶操作规定使尾数右移,尾数右移后阶码作相 应增加,其数值保持不变。显然,一个增加后的阶码与另一个阶码相等,增加的阶码的一定是 小阶。因此在对阶时,总是使小阶向大阶看齐,即小阶的尾数向右移位(相当于小数点左移) 每右移一位,其阶码加1,直到两数的阶码相等为止,右移的位数等于阶差△E。 (3) 尾数求和运算 对阶结束后,即可进行尾数的求和运算。不论加法运算还是减法运算,都按加法进行操作,其 方法与定点加减法运算完全一样。 (4) 结果规格化 在浮点加减运算时,尾数求和的结果也可以得到01.ф…ф或10.ф…ф,即两符号位不等,这 在定点加减法运算中称为溢出,是不允许的。但在浮点运算中,它表明尾数求和结果的绝对值 大于1,向左破坏了规格化。此时将运算结果右移以实现规格化表示,称为向右规格化。规则 是:尾数右移1位,阶码加1。当尾数不是1.M时需向左规格化。 (5) 舍入处理 在对阶或向右规格化时,尾数要向右移位,这样,被右移的尾数的低位部分会被丢掉,从而造成 一定误差,因此要进行舍入处理。简单的舍入方法有两种:一种是0舍1入法,即如果右移时 被丢掉数位的最高位为0则舍去,为1则将尾数的末位加1。另一种是恒置一法,即只要数 位被移掉,就在尾数的末尾恒置1。 在IEEE754标准中,舍入处理提供了四种可选方法: 就近舍入 其实质就是通常所说的四舍五入。例如,尾数超出规定的23位的多余位数字  是10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应增1。若多余的5位  是01111,则简单的截尾即可。对多余的5位10000这种特殊情况:若最低有效位现为0,则截  尾;若最低有效位现为1,则向上进一位使其变为 0。 朝0舍入 即朝数轴原点方向舍入,就是简单的截尾。无论尾数是正数还是负数,截尾都使取  值的绝对值比原值的绝对值小。这种方法容易导致误差积累。 朝+∞舍入 对正数来说,只要多余位不全为0则向最低有效位进1;对负数来说则是简单的  截尾。 朝-∞舍入 处理方法正好与 朝+∞舍入情况相反。对正数来说,只要多余位不全为0则  简单截尾;对负数来说,向最低有效位进1。 (6) 浮点数的溢出 下图表示了浮点机器数在数轴上的分布情况。 机器浮点数表示 当机器浮点数值大于最大正数A值,或小于最小负数B值时,称为上溢,这两种情况意味着阶 码运算值超出了它所表示的范围,机器必须做中断处理。 当机器浮点数值小于最小正数a值,或大于最大负数b值时,称为下溢。下溢不是一个严重问 题,通常看作为机器零。? 浮点数的溢出是以其阶码溢出表现出来的。在加\减运算过程中要检查是否产生了溢出:若 阶码正常,加(减)运算正常结束;若阶码溢出,则要进行相应处理。另外对尾数的溢出也需要处 理。 阶码上溢 超过了阶码可能表示的最大值的正指数值,一般将其认为是+∞和-∞。 阶码下溢 超过了阶码可能表示的最小值的负指数值,一般将其认为是0。 尾数上溢 两个同符号尾数相加产生了最高位向上的进位,将尾数右

文档评论(0)

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

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

1亿VIP精品文档

相关文档