笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述计算机中的算术运算相关的知识,希望能为你提供帮助。
???根据冯诺依曼体系可以得到,计算机只能识别?二进制数,?所有?数据?在计算机中是通过二进制的方式进行存储的。???
???计算机中数据的常用表示格式有?定点格式?和?浮点格式????
???注意:?正数是以原码(补码)的形式存储的,负数是以补码的形式进行存储的????
??问题:?那它是如何进行基本运算(加、减、乘、除)的呢????
(一)加(减)法
?电路图?
?半加器指的是不考虑进位的加法器,右边为一位加法器,在二进制位进行运算时需要考虑进位。?
?补充说明: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)?
推荐阅读
- 搭建 Restful Web 服务
- 《OpenHarmony 3GPP协议开发深度剖析》--不得不弄明白的RIL
- # yyds干货盘点 # 盘点6个Pandas中批量替换字符的方法
- gradle下载与安装(未更新完毕)
- 如何在 Python 中创建DataFrame
- k8s集群StatefulSets的Pod调度查询丢失问题?
- Python 学习路线(2022)
- 在U盘PE中如何更改内部注册表?
- U盘如何转换成NTFS格式?