和两个原码表示的数相乘类似,两个原码表示的数相除时,商的符号位是两数的符号位的异或,商的数值部分则是两数的绝对值相除。
例2-19:设被除数x=0.1001,除数y=0.1011,求x÷y。
解:商的符号位是0,商的数值部分的计算过程如下:
结果为商q=0.1101,余数r=0.00000001。上面的过程描述如下。
①判断x<y?现在x<y,则商的整数位上为“0”,除法可继续进行下去;否则退出,作溢出处理。x的低位补0,得余数r0。
②比较r0和2-1y的大小,现在r0>2-1y,表示够减,小数点后第1位商是“1”,做r0-2-1y,得余数r1。(www.xing528.com)
③比较r1和2-2y的大小,现在r1>2-2y,表示够减,小数点后第2位商是“1”,做r1-2-2y,得余数r2。
④比较r2和2-3y的大小,现在r2>2-3y,表示不够减,小数点后第3位商是“0”,不做减法,得余数r3(与r2相等)。
⑤比较r3和2-4y的大小,现在r3>2-4y,表示够减,小数点后第4位商是“1”,做r3-2-4y,得余数r4。至此共求出4位商。
但是,机器运算过程和人手算过程毕竟不同。人会心算,一看就知道够不够减,机器必须先做减法,如果余数为正,才知道够减,如果余数为负,才知道不够减。当不够减时必须恢复原来的余数,再继续往下运算,这种方法称为恢复余数法。要恢复原来的余数,只要将当前的余数加上除数即可。但是由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。实际中常采用不恢复余数法,又称加/减交替法。其特点是在运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续向下运算。这样运算时步数固定,控制简单。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。