12345678每个数字12345678只能用一次加法,加法等于9和7与减法等于1和2

数值运算的核心是指加、减、乘、除四则算术由于计算机中的数有定点和浮点两种表示形式,因此相应有定点数的运算和浮点数的运算本文将介绍计算机中定点数的加减法运算过程。

注意理解本文的前提是要清楚知道顶点数的源码、反码和补码的含义,以及定点数在计算机中的表示形式

由于计算機中定点数均以补码的方式表示和存储(个人观点,有待证明)采用补码表示法进行加减运算比源码方便多了,因为不论是正还是负機器总是做加法,减法运算可变成加法运算

这里再次说明定点定点数(定点整数和定点小数)的源码、反码和补码的表示规则: 
正数的苻号位为0,反码和补码等同于源码 
负数符号位都固定为1,源码反码和补码的表示都不相同,由原码表示法变成反码和补码有如下规则: 
(1)源码符号位为1不变整数的每一位二进制数位求反得反码; 
(2)反码符号位为1不变,反码数值位最低位加1得补码

补碼加法公式是: 


这里说一下上面公式的意思。mod2nmod2n表示的是模运算2n2n为模,这个模表示被丢掉的值上面的式子在数学上成为为同余式,即等式两边的值取2n2n的余数是相等的

以钟表为例,说明模运算一个钟表有12个小时刻度,时间确实0-24小时假设现在的标准时间是4点整,而有一個表已经7点了为了校准时间,可以采用两种方法:一是将时针退7-4=3格;二是将时针向前拨12-3=9格这两种方法都能对准到4点。由此可见7-3和7+9是等价的。等价的条件就是以模为12的模运算的情况下等价即除以12取余。以数学公式表示如下: 

1.2补码加法公式证明

可分五種情况来证明假设采用定点整数表示。不包括溢出情况该情况会另行讨论。

因此在模2n2n的意义下任意两数的补码之和等于该两数之和嘚补码。这是补码加法的理论基础

负数的加法要利用补码化为加法来做,减法运算当然也要设法化为加法来做其所以使用这种方法而鈈适用直接减法,是因为它可以和常规的加法运算使用同一加法器电路从而简化了计算机的设计。

定点数用补码表示时减法运算的公式为: 

为了证明这个公式,只要证明[?y]补=?[y]补[?y]补=?[y]补上式即得证。

因此只要求得[–y]补[–y]补,就可以变减法为加法已知[y]补[y]补,求[–y]補[–y]补的法则是:

对[y]补[y]补各位(包括符号位)取反然后在末位加上1,就可以得到[–y]补[–y]补

在定点整数机器中,数的表示范圍|x|<(2n?1)|x|<(2n?1)在运算过程中如出现大于字长绝对值的现象,称为“溢出”在定点机器中,正常情况下溢出是不允许的

例:设定点整数字长8位,补码表示(最高位为符号位)表示范围为-128~127,运算结果超出此范围就发生溢出

两个负数相加的结果小于机器所能表示的最小负数,結果变为负数成为负溢

两个正数相加结果大于机器字长所能表示的最大正数,结果成为变为负数称为正溢

下面以具体的例子来演示正常的运算和溢出时的运算 

为了判断溢出是否发生可采用以下两种检测方法。

当两个操作数同号时而其和的符号與操作数的符号不一致则就发出溢出,公式表示如下: 

a、若是同号相减或异号相加则运算结果不可能溢出; 
b、若是同号相加或异号相减,则运算结果可能溢出

(2)采用最高有效位的进位判断 

符号位产生的进位与最高有效位产生的进位情况不同,则溢出

(3)采用变形补碼判断(双符号位) 
用Sn+1、SnSn+1、Sn分别表示结果最高符号位和第2个符号位。 

定点整数的加减运算完成之后会由硬件逻辑电路进行溢出检测,如果发現存在溢出则产生硬件中断 。

定点小数是定点数的一种其运算法则和步骤与定点整数一致,不再赘述下面举个仅以双符号位补码来表示定点小数的补码加减运算示例。


[1]计算机组成原理第四版[M].白中英.科学出版社 

}

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)

你对这个回答的评价是?

}

我要回帖

更多关于 12345678只能用一次加法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信