我们不准备对此进行更多地讨论,可以给出其运算规则如下:
(1) 开始时,求第一位商,如果被除数与除数同号, 用被除数减去除数,若二数异号,则用被除数加上除数的办法处理。
(2) 运算过程中确定商的值,若余数与除数同号,上商1,左移一位后下次用余数减除数操作求商,若余数与除数异号,上商0,左移一位后下次用余数加除数操作求商。
(3) 商的符号,是在第一次求商试算时求出的,若定点除不溢出,得到的就是正确的符号位的值。
(4) 商的修正问题。在对精度要求不高时,将商的最低一位恒置1。最大误差为 | 2-n |。
若对商的精度要求较高,可对n位数求商n+1次,按得到的不同结果对商进行修正。当商为负时,要在商的最低一位加1,从反码的结果得到商的正确的补码值。
下面给出补码除法执行运算过程的一个实例。
假定 [X]补 =1 0111 , [Y]补 = 0 1101, 则 [-Y]补 = 1 0011
再求下去,可得下一位商并舍入;也可以不执行最后一步求商操作,而直接用在最低位上商1来结束除运算过程。
除法运算也有快速除运算的各种方案,如一次求得1位或多位商的跳0跳1法,专用的高速除法装置,用快速乘法器完成快速除运算等。由于在程序中,除法指令的使用频度不高,因此一般机器中较少采用快速除法方案。 |
|