文档介绍:除法算法位数循环算法 10 进制除法: 1024 13 1-13<0 10-13<0 102>13x7=91 114>13x8 0 1024 13 00 1024 13 10 104 114 91 0078 1024 13 10 进制二进制更简单商只有 0,1 两种可能余数大于除数商=1 余数小于除数商=0 恢复余数算法 B PA 减法器左移?被除数=商X除数+余数?首先把被除数放进移位寄存器 A,再把除数放进移位寄存器 B,把寄存器 P置 0,然后进行 N个步骤( N是商的二进制位数) ? 1. 把P、A寄存器整体左移一位? 2. 在P中减去 B,然后把结果再放回 P 恢复余数算法恢复余数算法? ,把 A的最后一位置 0, 而且让 P再加上 B来实现恢复上一个 P的值? ,则直接向左移位? N次循环之后, A中内容是商,而 P 中内容是余数(如下图所示) ? P A 注释? 00000 1110 被除数是 14=1110 ,除数是 3=0011 B 寄存器永远是 0011 ? 00001 110_ 第一步, P 、A寄存器全体左移一位? - 00011 第二步,两数相减?----------------- ? - 11110 1100 第一步,相减之后是负数,所以把寄存器 A末位置 0 ? 00001 1100 第二步,因为结果是负数,恢复(恢复红字 P的内容) ? 00011 100_ 第三步,左移一位? - 00011 第四步,相减? ------------------- ? 00000 1001 第一步,相减之后是正数,所以把寄存器 A末位置 1 ? 00001 001_ 第二步,因为相减之后是正数,所以不需要恢复原数? - 00011 第三步,相减? -------------------- ? - 11110 0010 第一步,相减之后是负数,所以把寄存器 A末位置 0 ? 00001 0010 第二步,因为结果是负数,恢复(恢复紫色 P的内容) ? 00010 010_ 第三步,左移一位? - 00011 ? -------------------- ? - 11111 0100 第一步,相减之后是负数,所以把寄存器 A末位置 0 ? 00010 0100 第二步,因为结果是负数,恢复(恢复绿色时 P的值) ?以十进制除法来说明以上的二进制除法算法?以 102 除以 9为例说明除法其实就是循环移位减法? P A 注释?