需要帮助理解带有2'赞美的8位有符号十进制

时间:2015-06-09 05:15:53

标签: binary decimal signed twos-complement

我需要帮助确定我的逻辑是对还是错。

示例问题

"假设我的赞美形式中有一个8位带符号的十进制值为200 ......"

我的思维过程

现在因为它是8位并且是有符号的,所以必须为符号保留最高有效位。

因此,它可以具有的最大正值是:

2 ^(8-1) - 1 = 127

起初我很困惑,因为我想,为什么问题是200可以是8位并签名?然后我想,这两个恭维声明会受到质疑。

因为它实际上是两个赞美,所以情况就是这样:

8位有符号,2&n;赞美,十进制= 200

转换为二进制 - > 1100 1000

因为它是签名的,实际的两个赞美号码实际上是 -56 (我会使用否定方法来反转1' s和0' s然后+ 1,但为了时间的利益,我刚刚在网上找到了转换器。

所以我的结论是:

8位有符号,2位赞美,小数值200实际上是-56。

终极问题

我的思维过程是否正确?如果是这样,我认为最令人困惑的部分是告诉我的大脑,一个数字等于一个完全不同的数字。

1 个答案:

答案 0 :(得分:0)

,我认为您的分析是正确的。

为了进一步扩展,我认为问题的措辞很尴尬,并且可以更好地说明为"基数10中的1100 1000的值是多少,其中数字是2' s补数?"

这里的诀窍是不要认为200 == -56,但单点的真相是11001000位。这些数字本身没有任何意义。我们让计算机根据程序对它们进行不同的解释。因此,两个补码(具有8位数字)将其视为-56,无符号解释将其视为200,而在ASCII中,这将是一些特殊字符,具体取决于编码。