【问题标题】:How 2's complement of -128 in Bit representation for 8 bit register is 1000 0000?8位寄存器的位表示中-128的2的补码如何是1000 0000?
【发布时间】:2017-07-27 17:05:13
【问题描述】:

我有一个关于计算机中带符号数字表示的基本问题 Q) 正如我在 8 位表示中所学到的,第 7 位(从 0-7 计数)始终是符号位,其余 0-6 位是数字的大小

所以在负数的情况下第 7 位始终为 1。 那么-128如何等于1000 0000?

当我们看到 1000 0000 时,我们假设它是一个负数,并取 000 0000 为大小 .. 如果取 2 的补码,则为 1000 0000

在这种情况下,符号位是否会在 8 位寄存器中被覆盖.. 请解释一下.. 希望我的解释清楚

【问题讨论】:

    标签: signed complement


    【解决方案1】:

    二进制补码中,最高位为1时,数为-(倒数+1)

    所以对于 1000 0000 的例子(假设我们有 8 位数字),即 -(倒数 1000 0000 + 1)= - (0111 1111 + 1) = - (127 + 1) = -128

    要创建一个负十进制数的二进制补码,您可以执行类似的操作 - 对于给定的数字,反转位,然后加 1。

    即:对于 -5,5 是 0000 0101(假设我们将是一个 8 位数字)。 1111 1010 取反,加 1 = 1111 1011。

    对于 -128,128 是 1000 0000(忽略目前最高位表示 8 位数字的 -ve 的事实),反转 = 0111 1111,加 1 = 1000 0000。

    【讨论】:

    • 你好 lostbard ,感谢您的解释,请您详细解释一下-128的最后一条语句。我真的无法通过忽略溢出来了解如何将 s 存储在计算机中
    猜你喜欢
    • 2019-03-26
    • 2011-11-04
    • 2014-11-18
    • 2023-01-12
    • 1970-01-01
    • 2011-01-14
    • 2015-12-26
    • 2013-06-05
    • 2020-11-21
    相关资源
    最近更新 更多