有符号的幅度和补充

时间:2015-04-25 16:31:53

标签: math binary signed complement ones-complement

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

  

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

     
      
  1. 88
  2.   
  3. -76
  4.   

我的解决方案是:

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

-76 = Not sure about this one

2 个答案:

答案 0 :(得分:1)

  

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

88 = 01011000

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

在Decimal中为了得到-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。

答案 1 :(得分:0)

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

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

您所需格式的数字如下所示:
1000 0110,十进制等于-6:
1 *** **** - 表示数字HAS符号(为负),
* 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 - - 你的号码
^^^^^^^^^
...< - 您的号码是1的补充

2s互补:

当你计算1s互补时,只需加1即可: 1000 0111 - 您的号码
0111 1000 - 您的号码1的补充
0111 1001 - 您的号码是2s的补充

尝试自己动手并发布答案 - 这样你就会学到更多。