方法要搭配例题一起看,才能看懂
1.定点数的乘法
定点数的乘法有原码一位乘、原码两位乘、阵列乘法器,这里只说原码一位乘。
1.1 原码一位乘
方法:X*Y,按Y的每一位从低到高计算,遇到1则部分积+X,右移一位,遇到0则部分积+0,右移一位。右移的次数和乘数Y的位数相同。
其实很简单,看着例题理解方法即可:
例题1:
例题2:
易错点:
(1)右移的次数就是乘数Y的位数;
(2)不管X和Y的正负,计算时都用绝对值计算,即符号位都为00,最后得到的计算结果的符号位为X和Y符号位的异或值。
2.定点数的除法
2.1 恢复余数法
先看题目:
方法:
符号 | 符号说明 |
---|---|
Y* | 除数Y的绝对值 |
[-Y*]补 | -Y*的补码 |
当左移次数和除数Y的位数一致时,结束。
看例题:
易错点:
若最后一步上商0(即余数小于0),则还需进行一次恢复余数,即余数再加Y*,才能得到正确的余数。
2.2 加减交替法
方法:
结束条件也是:当左移次数=被除数的位数时,结束。
看例题:
易错点:
若最后一步上商0(即余数小于0),则还需进行一次恢复余数,即余数再加Y*,才能得到正确的余数。
2.3 比较恢复余数法和加减交替法
这两种方法比较类似,容易搞混,所以我没用文字描述,直接对比伪流程图:
恢复余数法:
加减交替法:
差别:
恢复余数法是先恢复余数(+Y*),再左移;加减交替法是先左移,再加或减Y*。
P.S:把画的这两个流程图记心里,记住易错点,就行了。