不用“试商”的多位一除算法解答 |
送交者: 粱远声 2010年11月14日19:53:38 于 [灵机一动] 发送悄悄话 |
不用“试商”的多位一除算法
其实就是一次就得出商,不会像手算那样试一个,发现不对,再调整。要试商, 就是个NP的算法,不用试商,就是个P的算法。 解: 假设是16位除以8位的计算。除数是真正的8位,也就是说,最高位是1。所有 的数都用符号量值表示。 商放在一个16位的累加寄存器里,初始状态全0。被除数放在余数寄存器里, 是一个16位的累加寄存器。其符号存在符号寄存器里。 (1)从余数的最高非0位起始,往下数8位。最后一位是全排第k位。把仅第k 位为1的数加到商累加寄存器里。在余数的第k位减去除数。这时余数可能是 正的,也可能是负的。 (2)从余数的最高非0位起始,往下数8位。最后一位是全排第n位。如果余数 是正的,把仅第n位为1的数加到商累加寄存器里,在余数的第n位减去除数。 如果余数是负的,把仅第n位为1的数从商累加寄存器里减去,在余数的第n位 加上除数。 。。。 (N)商算到第-1位。最后调整商和余数。 |
|
|
|
实用资讯 | |