带符号的幅度和 1 的补码

Signed Magnitude and 1's Complement

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

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

对于 1 的补码,我知道我必须翻转所有位,所以我会得到 01001011,但我的问题是这个 1 的补码中的第一位是 0,这意味着它是一个正数。谁能给我解释一下如何把它变成前面没有零的负 1 的补数?

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

所以对于带符号的大小,您将第一位作为符号,并将其余部分解释为无符号二进制数。结果不是-76。

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

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