【问题标题】:Signed magnitude and complement有符号幅度和补码
【发布时间】:2015-07-04 06:11:15
【问题描述】:

我需要知道如何解决这个问题

使用 8 位有符号幅度、一个补码和二进制补码表示以下二进制十进制数:

  1. 88
  2. -76

我的解决办法是:

 88 = 01011000 8 bit sm
      10100111 1s complement
      10101000 2s complement

-76 = Not sure about this one

【问题讨论】:

  • 我想你的课程材料有很好的资源。

标签: math binary signed complement ones-complement


【解决方案1】:

在 8 位有符号幅度中,MSB 表示 数字,无论是正数还是负数。

88 = 01011000

     ^(MSB) this is signed bit,0 for positive.

在十进制中,为了得到 -76,我们从组合数 (256) 中减去 76,得到 256 - 76 = 180。

-76 = 10110100

      ^(MSB) this is signed bit, 1 for negative.

对于一个补码表示,只需反转位,即, 将 0 更改为 1,将 1 更改为 0。

因此,86(one's complement) = 10100111。

而且,-76(one's complement) = 01001011。

另外,我们通过在二进制数上加 1 来获得二进制补码 数字的表示。

因此,86(two's complement) = 10101000。

而且,-76(two's complement) = 01001100。

【讨论】:

    【解决方案2】:

    此链接应该可以帮助您解决问题 - 它非常简短且直截了当: http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch04s11.html

    8 位有符号幅度的简短说明:

    您所需格式的数字如下所示:
    1000 0110,等于十进制的-6:
    1*** **** - 表示数字有符号(减号),
    *000 0110 - 包含数字的二进制表示。

    当您有一个正数时,您只需将其转换为二进制形式:
    (D) 7 = 0000 0111 (D) 20 = 0001 0100

    当您有一个负数(例如 -7)时,您的最高位等于 1: 1...

    并且该值被简单地转换为二进制形式:
    (D) 7 = 111 = 000 0111

    然后你把它结合起来:
    (D) -7 = 1000 0111。

    请注意,在这种格式中,您只能保存范围从 -127 到 127 的数字 - 您只剩下 7 个低位用于值,而第 8 位必须用于符号。

    1s 互补示例:

    (D) -7 = 1000 0111 8 位有符号。 当您添加一个数字并且它是 1 的补数时,您应该得到:1111 1111
    1000 0111 - 您的号码
    0111 1000 + - 你的号码补 1
    ^^^^^^^^^
    1111 1111

    形式上,可以进行如下操作:
    1111 1111
    1000 0111 - - 你的号码
    ^^^^^^^^^
    ...

    2s互补:

    当您计算 1s 互补时,只需将其加 1: 1000 0111 - 您的号码
    0111 1000 - 你的号码补 1
    0111 1001 - 你的号码的 2s 补码

    尝试自己做这件事并发布你的答案 - 这样你会学到更多。

    【讨论】:

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