不用“試商”的多位一除算法解答 |
送交者: 粱遠聲 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位。最後調整商和餘數。 |
|
|
|
實用資訊 | |