我需要帮助确定我的逻辑是对还是错。
示例问题
"假设我的赞美形式中有一个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。
终极问题
我的思维过程是否正确?如果是这样,我认为最令人困惑的部分是告诉我的大脑,一个数字等于一个完全不同的数字。
答案 0 :(得分:0)
是,我认为您的分析是正确的。
为了进一步扩展,我认为问题的措辞很尴尬,并且可以更好地说明为"基数10中的1100 1000的值是多少,其中数字是2' s补数?"
这里的诀窍是不要认为200 == -56,但单点的真相是11001000位。这些数字本身没有任何意义。我们让计算机根据程序对它们进行不同的解释。因此,两个补码(具有8位数字)将其视为-56,无符号解释将其视为200,而在ASCII中,这将是一些特殊字符,具体取决于编码。