计算机内实现原码乘法的具体过程如下: 假定 X=0.1101 Y=0.1011

 

  结果符号位为正,数值位为10001111。这种乘法运算的控制流程图给出在图2.7。该图中,数据的位序号从左至右移按0、1…n的次序编,0位表示符号,共n位数值。

  从流程图上可以清楚地看到,这里的原码一位乘是通过循环迭代的办法实现的,即按一定的时间顺序重复地使用最少量的硬件(寄存器、加法器、移位和传送门等),把整个乘法过程变成为数据经过选通门和加法器实现相加、移位和寄存器接收的时序控制过程。即把X*Y为成如下形式:

P = 2-1 { 2-1 [ 2-1( 2-1 … (2-1 ( 0 + Xyn)+ Xyn-1 + … Xy3) + Xy2 ] + Xy1 }

  将上述公式展开,可写成:
         P0 = 0
         P = 2-1 ( P0 + Xyn )
         P2 = 2-1 ( P1 + Xyn-1 )
           …
         Pi+1 = 2-1 ( Pi+ Xyn-i )
           …
         Pn= 2-1 ( Pn-1 + Xy1 )
         P = Pn

  此处的P0、P1…Pn-1称为部分积, Pn为最终的乘积P。


图2.7 原码一位乘运算流程