【问题标题】:One's twos compliment 8 bit signed magnitude, in binary二进制补码 8 位有符号幅度,二进制
【发布时间】:2013-03-01 06:40:22
【问题描述】:

所以这是我教科书中的问题之一,我们还没有到那里,但我对这一切是如何运作的很感兴趣,

首先,我对补码的理解是翻转,所以在有 1 的地方放 0,在有 0 的地方放 1。这必须是 8 位,所以我在开始时在二进制文件中添加了一个零 01001001 写下+73的以下二进制表示:

8-bit unsigned: 01001001
8-bit signed-magnitude: 01001001
8-bit one's complement: 10110110
8-bit two's complement: 10110111
8-bit excess-128: 10110111

这些是我想出的答案,但我相当肯定我做错了。对此有何澄清?

其次,我到底是如何用负数做的,所以 -73,二进制文件只是 -01001001,所以我假设这是有符号的,你是否使用与上述相同的技术(假设我已经正确)

8-bit signed-magnitude: -01001001
8-bit one's complement: 
8-bit two's complement: 
8-bit excess-128: 

提前感谢您的帮助

【问题讨论】:

    标签: binary signed


    【解决方案1】:

    +73 在您命名为excess-128 的所有表示中都是01001001。超过 128 为 11001001(加上 128)。正数的符号幅度、一个补码和二进制补码都相同,只有负数不同。在这些表示中 -73 的值是:

    8-bit sign magnitude   11001001
    8-bit one's complement 10110110
    8-bit two's complement 10110111
    8-bit excess-128       00110111
    

    一个补码“翻转所有位”是您如何在一个补码表示法中否定一个数字。因此,如果您有 n,要获得 -n,您将翻转所有位。

    “翻转所有位并加 1”是您对二进制补码中的数字求反的方法。

    二进制补码和二进制补码都有一个奇数。对于一个补码是 -0(所有位都设置),这实际上与 0 相同 - 或者您可以将其视为无效和特殊情况否定 0。对于二进制补码,即 -2^(n-1) -- 128 表示 8 位 - 这是一个由于溢出而对自身求反的数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-18
      • 2020-01-28
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多