0

我有这个问题,我必须将这个 8 位有符号二进制数10110100转换为有符号幅度、1 的补码和 2 的补码。

对于有符号的幅度,我得到的值为-76。

对于 1 的补码,我知道我必须翻转所有位,所以我会得到01001011,但我的问题是这个 1 的补码中的第一位是 0,这意味着它是一个正数。有人可以向我解释如何将其变为负 1 的补数,而前面没有零吗?

4

1 回答 1

1

如果您不首先说明如何解释它,那么将位模式转换为其他任何东西都是没有意义的。我假设您的意思是您需要将模式解释为这三个。

因此,对于有符号幅度,您将第一位作为符号,并将其余位解释为无符号二进制数。结果不是-76。

对于 1 的补码,如果第一位是 1,则您知道它是一个负数。您反转所有位,将结果解释为无符号数,最后在前面添加 - 符号。(如果第一位为 0,则跳过反转步骤并且不添加 - 符号。)

对于 2 的补码,过程是相同的,但是在反转位之后,你加 1。

于 2015-11-08T20:19:19.430 回答