计算机中的算术运算

笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述计算机中的算术运算相关的知识,希望能为你提供帮助。

???根据冯诺依曼体系可以得到,计算机只能识别?二进制数,?所有?数据?在计算机中是通过二进制的方式进行存储的。???
???注意:?正数是以原码(补码)的形式存储的,负数是以补码的形式进行存储的????


???计算机中数据的常用表示格式有?定点格式?和?浮点格式????

??问题:?那它是如何进行基本运算(加、减、乘、除)的呢????
(一)加(减)法
?电路图?

?半加器指的是不考虑进位的加法器,右边为一位加法器,在二进制位进行运算时需要考虑进位。?

?补充说明: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)?

    推荐阅读