2013-03-01 78 views
0

因此,这是在我的教科书中的一个问题,我们还没有到达那里,但是我很感兴趣,这是如何工作的,One的二进制补码8位有符号的大小,以二进制

对于第一位在这里,我对补码的理解是你翻转,所以在1的位置你输入0和0,你输入1。这必须是8位,所以我刚开始添加一个零到二进制 Therefre 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: 

预先感谢任何帮助

回答

1

+73是所有你被点名除了过剩-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,让你翻转所有的位。

'翻转所有位并加1'是你如何否定二进制补码中的数字。

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