计算机组成原理
此系列为王道计算机考研组成原理精细笔记
一、原码的除法运算
十进制除法也能利用r进制思想,相同的二进制除法也能利用。且二进制除法和十进制除法没有什么相异。
现在我们已经会手算二进制除法,那么机器是怎么做二进制除法的呢?同样的我们回忆一下,运算器中除法的操作是怎么样的:
现在我们知道了运算器做除法时,ACC存被除数和余数,MQ中存商,x中存除数。现在我们来看一下运算器如何实现原码的除法:
恢复余数法:
对于原码的除法来说,被除数和除数即有可能是正的也有可能是负的,所以对于最终结果的正负性,我们会用一个单独的异或运算来确定。
首先我们先写出除数和被除数绝对值的原码,以及除数的绝对值的补码和其绝对值取负的补码。
重复执行
恢复余数法手算方式:
刚开始,我们会用最初的被除数减掉除数,也就是加上除数绝对值的负值的补码,如下图:
这时,我们会得到一个余数,我们得到的余数为1.1110,这是一个负数,所以现在我们知道商0,并且在这个余数上加上除数来恢复余数,
然后我们将恢复的余数逻辑左移,低位补0,同样的我们会加上除数绝对值的负值的补码,用这一次操作的得到的余数的正负性来确定当前这一位的商我们是取0还是1,如果余数为正就取1,如果余数为负就取0,依次重复进行。
总结:
恢复余数法这种方法比较繁琐,老是要恢复余数,所以有人提出了以一种不需要恢复余数的方法:加减交替法又称为不恢复余数法。
二、补码的除法运算
补码除法:加减交替法
和原码交替法不同,补码的加减交替法中,符号位参与运算,被除数/除数采用双符号位。且会根据被除数和除数是否同号进行相应操作:
- 注:补码的加减交替法最后一位的商我们都会统一恒置为1.
总结
下一节是各种码的作用和定点数的表示和运算,期待大家和我交流,留言或者私信,一起学习,一起进步!