添加使用2的补两个负号

问题描述 投票:1回答:1

我想知道,如果有人可以仔细检查我的工作对我来说真正的快速。如果我给出了两个负数:-33和-31。如果我把它们加起来会是怎样使用2的补数的结果。

注:6位必须的字长被用于该操作。


我的答案

所以,这样做后,我计算-31是在2的100001。我还计算-33是在2的补数011111。当一起添加它们我百万,但是这个数目为7位,所以我砍掉高阶位因为我结合到6比特的字长。这就产生了其中包含的0符号位,这意味着它会连号000000。然而,由于2分负的总和不能连这显然溢出。所以,我走2倍的000000这简直是000000。

所以答案应该是:0,因为发生缓冲区溢出。这看起来从右到你们?谢谢。 :)

binary numbers theory twos-complement complement
1个回答
1
投票

首先:-33 +(-31)不能为0。

-33是不是在6位2的补码表示的。 01 1111b是十进制+31,所以在0的相加结果。

所以正确答案是类似的东西:有没有结果,因为-33是6位表示一个无效的号码。

在7位2的补-33 = 101 1111b

 110 0001
+101 1111
    =
1100 0000

其等于-64。

© www.soinside.com 2019 - 2024. All rights reserved.