考研帮 > 数学 > 每日一练

2.3 点数的表示和运算

2.3.2 浮点数的加减运算

  由于浮点数的运算较定点数的运算要复杂,为了简单直观,本节仅讨论规格化浮点数的加减运算问题,其中尾数的基数r=2。设两个浮点数分别为:

  下面基于这两个浮点数来描述浮点数加减运算的过程。
  (1)对阶。对阶的目的是使两操作数A和B的阶码相等,以提供尾数相加减的可能性。阶码的比较是通过两阶码的减法来实现的,统一取大的阶码;小阶码的尾数按两阶码的差值决定右移的数量。首先应求出两数阶码EA和EB之差,即ΔE=EA-EB。若ΔE =0,表示两数阶码相等,即EA=EB;若ΔE>0,表示EA>EB;若ΔE<0,表示EA<EB
  当EA≠EB时,要通过尾数的移位来改变EA或EB,使EA=EB。对阶的规则是:小阶向大阶看齐。即阶码小的数的尾数右移,每右移一位,阶码加1。
  (2)尾数求和运算。在完成对阶操作后,就可进行尾数求和运算了,无论是加法还是减法运算,都可以转换为加法操作,其操作的方法与定点数加法一样。
  (3)尾数规格化。尾数加减运算之后得到的数可能不是规格化数,必须进行规格化操作。设尾数用双符号位补码表示,经过加减运算之后,可能出现以下6种情况,即:
  ① 00.1 x x… x
  ② 11.0 x x… x
  ③ 00.0 x x… x
  ④ 11.1 x x… x
  ⑤ 01.x x x… x
  ⑥ 10.x x x… x
  第①和②种情况,符合规格化数的定义,已是规格化数。
  第③和④种情况不是规格化数,需要使尾数左移以实现规格化,这个过程称为左规。尾数每左移一位,阶码相应减1,左规可以进多,次行直至成为规格化数为止。
  第⑤和⑥种情况在定点加减运算中称为溢出;但在浮点加减运算中,只表明此时尾数的绝对值大于1,而并非真正的溢出。这种情况应将尾数右移以实现规格化。这个过程称为右规。尾数每右移一位,阶码相应加1。右规最多只有一次。
  (4)尾数的舍入处理。由于受到硬件的限制,在对阶和右规处理之后有可能将尾数的低位丢失,这会引起一些误差。为了缩小误差,就要进行舍入处理。假定经过运算后的数共有p+q位,现仅允许保留前p位。舍入方法有许多种,常见的舍入方法如下。
  恒舍(切断):这是一种最容易实现的舍入方法,无论多余部分q位为何代码,一律舍去,保留部分的p位不做任何改变,即无条件地丢掉正常尾数最低位之后的全部数值。
  冯•诺依曼舍入法:这种舍入法又称为恒置1法,即不论多余部分q位为何代码,都保留部分p位的最低位置1。
  下舍上入法:下舍上入就是0舍1入,相当于十进制中的四舍五入。用将要舍去的q位的最高位作为判断标志,以决定保留部分是否加1。如该位为0,则舍去整个q位(相当于恒舍);如该位为1,则在保留的p位的最低位上加1。
  (5)溢出处理。浮点数的溢出是以其阶码溢出表现出来的,若阶码正常,加减运算正常结束。若阶码下溢,则置运算结果为机器0;若上溢,则置溢出标志。

关于"最后阶段,真题的正确打开方式_备考经验_考研帮"15名研友在考研帮APP发表了观点

扫我下载考研帮

考研帮地方站更多

你可能会关心:

来考研帮提升效率

× 关闭