定点整数的加减法
简述
因为定点数一般用补码表示,我们对于原码的计算复杂,因为操作数取绝对值运算,实际操作并不仅仅取决于操作码,还与操作数的正负有关,并且可能对运算结果进行修正。因此我们下面主要讨论补码的加减运算方法。
定义
两个操作数都使用补码表示,连同符号位一起运算,结果也使用补码表示。
基本关系
(X+Y)补=X补+Y补
(X-Y)补=X补+(-Y补)
运算规则
首先我们在下面的计算过程中,将下面几点作为运算规则
1.对于定点整数运算,取mod2n+1的模(n表示不包括符号位的数值);对于定点小数,取mod2
直接举例
(1)若X=+10010,Y=-10101,求[X+Y]补
1.分别求X,Y的补码
[X]补=010010,[Y]补=101011
2.代入公式计算
[X+Y]补=[X]补+[Y]补=010010+101011=111101
3.取模运算(取mod25+1)
得到[X+Y]补=111101
【补充】:
如果这道题是要求计算X+Y的值,此时我们有了[X+Y]补,我们只需要对得到的值再次求补就行
X+Y=100011=-00011
(2)已知X=+10101,Y=+10010,求(X-Y)补
这种情况我们需要代入的公式是(X-Y)补=X补+(-Y补),因此我们不管要计算Y补,也要计算(-y)补
[X]补=010101,[Y]补=010010,[-Y]补=101110(连同符号位一起变反加一,变补)
[X+Y]补=[X]补+[-Y]补=010101+101110=1000011
取模预算丢掉最高位1,得到[X-Y]补=000011=+00011
同样要求X-Y,也是对结果求补等于+00011