(5)用快速乘法器实现快速除法运算

  按下式完成M/D:

      

  式中Fi( 0 ≤ i ≤ r )为各次递乘因子,递乘几次后,可以使D*F0*F1*F2*…*Fr→1,则商应为:
       M * F0 * F1 * F2*…* Fr

  若M和D为规格化正的二进制小数代码时,可写成:
       D=1-δ (0 <δ≤ 1/2)
  那么可取Fi 的值如下:
       F0 = 1+δ
       D0 = D×F0 = (1-δ)(1+δ)=1-δ2
       F = 1+δ2
       D =(1-δ2)(1+δ2)=1-δ4

  可见当i增加时, Di将很快趋近于1,其误差为δ2i+1

  实际上求得Fi 的过程很简单,它应为 - Di的补码, 即2 - Di( 0 ≤ i ≤ r ) ,
  请见下例:
      M=0.1000 D=0.1011, F=1.0101
  则
  

  则     F1=1.0010
  

  则可以认为本Q≈0.1100,若算得更精确些,可以采用双倍字长乘运算,误差更小,求得的商为Q=1011。