【问题标题】:Signed Magnitude and 1's Complement带符号的大小和 1 的补码
【发布时间】:2015-11-08 20:01:34
【问题描述】:

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

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

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

【问题讨论】:

    标签: ones-complement


    【解决方案1】:

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

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

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

    对于2的补码,过程是一样的,只是取反后加1。

    【讨论】:

    • 嗨塞巴斯蒂安。您说如果第一位是 1,则反转所有位,将其余位解释为无符号数,最后在前面附加 - 符号。您能通过在前面附加 - 符号来解释您的意思吗?你是说我只是在前面加一个1?
    • 我的意思是十进制表示。所以 10110100 在前面有一个 1。将 0110100 转换为十进制得到 52,加上 - 符号得到 -52。
    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2021-02-18
    • 2012-06-18
    相关资源
    最近更新 更多