计算机中的算术运算
Posted ITWEL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机中的算术运算相关的知识,希望对你有一定的参考价值。
根据冯诺依曼体系可以得到,计算机只能识别二进制数,所有数据在计算机中是通过二进制的方式进行存储的。
注意:正数是以原码(补码)的形式存储的,负数是以补码的形式进行存储的
计算机中数据的常用表示格式有定点格式和浮点格式
问题:那它是如何进行基本运算(加、减、乘、除)的呢?
(一)加(减)法
电路图
半加器指的是不考虑进位的加法器,右边为一位加法器,在二进制位进行运算时需要考虑进位。
补充说明:C1指的是来自上一位的进位(0或1),A、B为同一位的进行运算的二进制位
如下图:
上图为行波进位的补码加法/减法器(串行加法器)
缺点:按地位向高位的顺序执行,如果想要求某一位的计算结果,必须知道其前一位的进位
(二)乘(除)法
I.定点原码乘法
逻辑图
语言描述:
(假设两个数分别为yn,ym)初始的部分积为0,点击启动,看yn从后往前看,如果最后一位为1,就让部分积加上一个ym(如果为0,就加上0)然后让部分积和乘数Yn均右移,部分积右移后的那一位变为yn的最左位,部分积的最左位用原先的符号位来补,yn的最右位变为原来的yn的倒数第二位,重复上述步骤。直至移动原yn的二进制位数次。
例题如下:
运算过程如下
定点补码乘法
规则:
逻辑电路图
注意:所补充的最后一位是0
练习题:
解题过程如下:
II.定点补码除法
我们可以使用加减交替法来实现
问题分析:
我们在进行除法运算的过程中,如果被除数大于除数,就上1,反之,就上0,最后末尾补零,但是对于计算机来说应该怎么运算呢,计算机先要进行判断,即(被除数-除数),如果结果大于0,商上位1,被除数补零;如果结果小于0,则需要再加上除数,变为原数,然后上位0,被除数补零
恢复余数法
步骤如下:(1)作差(被除数-除数)
(2)两种情况
情况一:结果大于0,上位1,然后差后补零变为新的被除数,然后再与除 数相减
情况二:结果小于0,上位0,然后差再加上除数,变为原来的数,然后上 商0,然后再将被除数与除数相减
改进后,如果差值小于0,我们不需要再对差值加上除数变为原数
逻辑图如下:
可参考:https://www.csdn.net/tags/MtTaMg4sMDQzODIxLWJsb2cO0O0O.html
如果 y 和 0 进行异或运算,结果还是 (y) ;但如果是和 1 进行运算,结果会变为 (-y)
以上是关于计算机中的算术运算的主要内容,如果未能解决你的问题,请参考以下文章