(1)原码两位乘

  两位乘数的取值可以有四种可能组合,每种组合对应于以下操作:
    00 相当于0*X,部分积Pi右移2位,不进行其它运算;
    01 相当于1*X,部分积Pi+ X后右称2位;
    10 相当于2*X,部分积 Pi+ 2X后右移2位;
    11 相当于3*X,部分积 Pi + 3X后右移2位。
  
  上面出现了 + 1X, + 2X, + 3X 三种情况,+X 容易实现,+2X可把X左移1位得2X,在机器内通常采用向左斜1位传送来实现。可是+3X一般不能一次完成,如分成两次进行,又降低了计算速度。解决问题的办法是备: 以 +(4X-X) 来代替 +3X运算,在本次运算中只执行 -X, 而 +4X 则归并到下一步执行,因为下一步运算时,前一次的部分积已右移了两位,上一步欠下的 +4X 在本步已变成 +X。实际线路中要用一个触发器C来记录是否欠下+4X的操作尚未执行,若是,则1→C。因此实际操作要用Yi-1 Yi C三位的组合值来控制乘法运算操作,运算规则如表2.12所示。

表2.12 原码两位乘运算规则


   原码两位乘举例:
   假定 X = 0.100111 Y = 0.100111
   则  [-X] = 1011001


  如上面最后一次运算时欠下 +4X ,.则部分积右移2位后还需补充完成 +X 操作。