补码运算溢出了咋办(补码运算)

2022-09-06 22:00:06   编辑:蒋栋天
导读很多朋友对补码运算溢出了咋办,补码运算还不了解,今天小绿就为大家解答一下。补数加法,补数加法计算原理负数用补数表示后,可以像正数一...

很多朋友对补码运算溢出了咋办,补码运算还不了解,今天小绿就为大家解答一下。

补数加法,补数加法计算原理负数用补数表示后,可以像正数一样处理。这样,算术单元中只需要一个加法器,不需要用另一个减法器将负数相加。补码加法的公式为[x]补码+[y]补码=[x+y]补码(mod 2) (2.17),可分四种情况证明。假设采用定点十进制表示,那么证明的前提条件是 x 1, y 1, x+y 1。(1) x 0,y 0,然后x+y 0。两个数之和是正的,所以和也一定是正的。正数的补码与原码相同,可以得到:[x]补码+[y]补码=x+y=[x+y]补码(mod 2) (2) x 0,y0,则x+y0或x+y0。相加的两个数一个是正的,一个是负的,所以有正负两种结果的可能。根据补码的定义,[x]补码=x,[y]补码=2+y [x]补码+[y]补码=x+2+y=2+(x+y)当x+y0,2+(x+y) 2,这种情况和第二种情况一样,X和Y的位置颠倒。(4) x0,y0,然后x+y0。如果两个数字都是负数,那么总和一定是负数。[x]补码=2+x,[y]补码=2+y [x]补码+[y]补码=2+x+2+y=2+(2+x+y)上式右边分为“2”和(2+x+y)所以[x]补码+[y]补码=2+(x+y)=[x+y]补码(mod 2)。到目前为止,我们已经证明,在模2的意义下,任意两个数的补数等于这两个数之和的补数。这是补数加法的理论基础,其结论同样适用于定点整数【例8】x=0.100。【解法:】[x]补码=0.1001,[y]补码=0.0101,所以x+y=+0.1110【例9】x=+0.1011,y=-0.0101,求x+y【解法:】[x]补码=0.1011,[y]补码=1.1011,所以x+y=0.0110。从上面两个例子可以看出,补码加法的特点是:第一,符号位要作为数的一部分参与运算;第二,要在模2的意义上相加,也就是说要舍弃2以上的进位。

以上问题已解答完毕,如果想要了解更多内容,请关注本站

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章