目录

 一、原码除法运算

1.原码比较法和恢复余数法

⑴比较法

⑵恢复余数法            

2.原码不恢复余数法(原码加减交替法)

 二、补码除法运算

 1、够减的判断

 2、上商规则

3、商符的确定

4、求新部分余数         

5、末位恒置1            

乘法的逆运算,思想相似,n位除转化成若干次“减法-移位”

 一、原码除法运算

1.原码比较法和恢复余数法

⑴比较法

类似于手工运算,将除数右移改为部分余数左移,每一位的上商直接写到寄存器的最低位。

设A寄存器中存放被除数(或部分余数),B寄存器中存放除数,C 寄存器用来存放商Q。

若A≥B,则上商1,并减除数;若A<B,则上商0。比较法需要设置比较线路,从而增加了硬件的代价。

  • 比较过程的流程图:

 

⑵恢复余数法            

直接作减法试探方法,不管被除数(或部分余数)减除数是否够减,都先做减法。            

部分余数为正,够减,该位商上“1”;            

部分余数为负,不够减,该位商上“0”,并要恢复余数

  • 恢复余数过程的流程图:

 部分余数的正、负是根据不同的操作数组合随机出现的,恢复余数法会使除法运算操作次数不固定,导致控制电路复杂。在恢复余数时,要多作一次加法,降低了除法的执行速度。因此很少采用。

2.原码不恢复余数法(原码加减交替法)

是对恢复余数法的改进,减少了加法时间,运算的次数固定,广泛采用。            

  • 在恢复余数法中,若第i-1次求商的部分余数为ri-1,则第i次求商操作为:r_{i}=2r_{i}-1-Y,
  • 若够减,部分余数ri=2ri-1-Y>0,商1      

       若不够减,部分余数ri=2ri-1-Y<0,商0

  • 恢复余数后,ri’=ri+Y=2ri-1,然后再左移一位,进行第i+1次操作:            

 由通式表示:          r_{i}+1=2r_{i}+(1-2Q_{i})Y        

Qi为第i次所得的商

若部分余数为正,则Qi=1,部分余数左移一位,下一次继续减除数;

若部分余数为负,则Qi=0,部分余数左移一位,下一次加除数。

加减运算交替进行,故称为原码加减交替法。

 

 注意:减去一个数等于加上这个数的变补

 需要3个寄存器。            

A和B存放被除数和除数,C寄存器用来存放商,它的初值为0。            

运算过程中A寄存器的内容为部分余数,不断地变化,最后剩下的是扩大了若干倍的余数,只有将它乘上2-n才是真正的余数。

  • 原码加减交替除法流程图:
  •  三个寄存器A、B、C,分别存放被除数、除数和商,其中A,B是n+2位,C是n+1位      
  • 一个n+2位的加法器    
  •  n+2个与或门      
  • 一个计数器      
  • 一个异或门
  •   A寄存器和C寄存器级联,具有左移一位的功能。C寄存器最高位的值将移入A寄存器的最低位。A寄存器中的初值是被除数,运算过程中变为部分余数。C寄存器最低位保存每次运算得到商值,商值同时也作为下一次操作是做加法还是做减法的控制信号。

   定点除法,为防止溢出,要求被除数的绝对值小于除数的绝对值,|X|<|Y|(|X|=|Y|除外),且除数不能为0。            

因此第一次减除数不够减,如果采用先移位后减除数的方法,得到的结果也是相同的。          

在原码加减交替法中,当最终余数为负数时,必须恢复一次余数,使之变为正余数,注意此时不需要再左移了。

  • A、B寄存器n+2位,C寄存器n+1位,n+2位的加法器、n+2个与或门、一个计数器和一个异或门。
  • A和C级联,都有左移一位功能,C寄存器最高位值移入A寄存器最低位。A寄存器初值是被除数,在运算中变为部分余数。C寄存器最低位保存每次运算得到的商值,商值同时也作为下一次操作是做加法还是做减法的控制信号。 

 二、补码除法运算

先来看一个有关例题

  •  补码加减交替除法流程图:

 

 

 1、够减的判断

       被除数(或部分余数)的绝对值大于或等于除数的绝对值,够减;反之不够减。当两数同号时,实际应作减法;两数异号时,实际应作加法。                      

 方法:被除数(或部分余数)与除数同号时,如果得到的新部分余数与除数同号,够减,否则不够减;当被除数(或部分余数)与除数异号时,如果得到的新部分余数与除数异号,够减,否则为不够减。

 2、上商规则

            补码除法的商也用补码表示,上商规则:[X]补和[Y]补同号,则商为正数,够减时上商“1”,不够减时上商“0”;[X]补和[Y]补异号,则商为负数,够减时上商“0”,不够减时上商“1”。       

     归结为:        部分余数[ri]补和除数[Y]补同号,商上“1”,反之,商上“0”。

3、商符的确定

         在求商的过程中自动形成,按补码上商规则,第一次得出的商,就是实际应得的商符。    

为防止溢出,有|X|<|Y|,第一次肯定不够减。          

 被除数与除数同号,部分余数与除数必然异号,商上“0”,恰好与商符一致;            

被除数与除数异号,部分余数与除数必然同号,商上“1”,也恰好就是商的符号

4、求新部分余数         

 [ri+1]补的通式如下:            [ri+1]补=2[ri]补+(1-2Qi)×[Y]补            

Qi表示第i步的商。商上“1”,部分余数左移,减去除数;商上“0”,部分余数左移,加上除数。  

5、末位恒置1            

商的最末一位恒置为“1”,运算的最大误差为2-n。此法操作简单,易于实现。

  • 补码加减交替除法规则

[X]与[Y]

第一次操作

[ri]与[Y]

上商

求新余数[ri+1]的操作

同号

[X]-[Y]

①同号

(够减)

1

[ri+1]=2[ri]-[Y]

②异号

(不够减)

0

[ri+1]=2[ri]+[Y]

异号

[X]+[Y]

①同号

(不够减)

1

[ri+1]=2[ri]-[Y]

②异号

(够减)

0

[ri+1]=2[ri]+[Y]

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐