考研帮 > 数学 > 每日一练

2.2 点数的表示和运算

  原码乘法的特点是符号位单独处理,对n位乘数而言,共做n次累加,n次移位。每一次根据一位乘数来判断部分积是加被乘数还是不加被乘数。
  (2)补码乘法。补码乘法有校正法和比较法两种。在校正法中,当乘数y为正时,可按类似原码乘法的规则进行运算。当乘数为负时,把乘数的补码[y]去掉符号位,看成一个正数与[x]补相乘,然后加上[–x]进行校正。按补码进行运算和按补码的规则进行移位,即右移补1,符号位一起移。符号位参与运算,自动生成与原码的不同之处。考虑到运算时可能出现绝对值大于1的情况(但此刻并不是溢出),故部分积和被乘数取双符号位。
  现在广泛使用的是Booth算法,也称为比较法,其运算规则由校正法导出。设被乘数[x]=x0.x1x2…xn,乘数[y]=y0.y1y2…yn,被乘数x符号任意:
  乘数y的符号为正时,有[x×y]=[x]×[y]=[x]×y;
  乘数y的符号为负时,有[x×y]=[x]×[y]=[x]×(0.y1y2…yn)+[–x]
  综合上述两种情况,被乘数x符号任意,乘数y符号任意,有:
  [x×y]=[x]×[y]=[x]×(0.y1y2…yn)–[x]×y0
  补码比较法(Booth乘法)所需的硬件配置如图2-7所示。

  补码比较法(Booth乘法)控制流程如图2-8所示。

  6.定点数的除法运算
  相对于乘法运算,除法运算也是通过由累加和位移操作实现的,不过除法运算使用的是左移。根据机器数的不同,除法运算可以分为原码除法和补码除法。
  (1)原码除法。原码除法有恢复余数法、加减交替法两种。
  在恢复余数法中,商值的确定是通过比较被除数和除数的绝对值大小,即通过x–y实现的。如果余数为正,说明够减,商上1;如果余数为负,说明不够减,商上0。若不够减却减了,必须将除数加回去,恢复成原来的余数。机器内只设加法器,故需将x–y操作变为[x]+[–y]的操作。因此,在判断够减、不够减做减法时,采用的是补码运算。
  根据原码恢复余数法,当余数Ri>0时,可上商1,再对Ri左移一位后减除数,即2Ri–y。当余数Ri<0时,可上商0,然后再做Ri+y,即完成恢复余数的运算,再做左移和减除数,即2(Ri+y)-y,也即2Ri+y。因此,原码恢复余数法可归纳为当余数Ri>0时,商上1,做2Ri–y的运算;当余数Ri<0时,商上0,做2Ri+y的运算。这里已看不出余数的恢复问题了,而只是做加y或减y,因此,一般把它叫做加减交替法或不恢复余数法。
  原码加减交替法所需的硬件配置如图2-9所示。

  原码加减交替除法控制流程如图2-10所示。
  原码除法的特点是符号位单独处理,上商的原则是余数为正上商1,余数为负上商0。共上商n+1次,移位n次。
  (2)补码除法。符号位和数值部分一起参加运算。主要需解决如何确定商值、如何形成商的符号、如何获得新的余数三个问题。比较被除数(余数)和除数的大小。操作数都为补码,不能简单地用[x](或余数[Ri])减去[y]。实质上是比较它们所对应的绝对值的大小,具体如表2-6所示。

表2-6 补码加减交替法运算规则

比较[x]与[y]的符号 求 余 数 比较 [Ri]与[ y]的符号
同号 [x]-[y] 同号,表示够减
异号 [x]+[y] 异号,表示够减

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

扫我下载考研帮

考研帮地方站更多

你可能会关心:

来考研帮提升效率

× 关闭