签名量级和1的补充

时间:2015-11-08 20:01:35

标签: ones-complement

我遇到了这个问题我需要将这个8位有符号二进制数10110100转换为有符号幅度,1的补码和2的补码。

对于签名幅度,我得到的值是-76。

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

1 个答案:

答案 0 :(得分:2)

如果您没有说明如何首先解释它,那么将位模式转换为其他任何内容都没有意义。我认为你的意思是你需要将模式解释为这三种模式。

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

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

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