Binary 需要帮助理解一个8位带符号十进制,带2';恭维

Binary 需要帮助理解一个8位带符号十进制,带2';恭维,binary,decimal,signed,twos-complement,Binary,Decimal,Signed,Twos Complement,我需要帮助来确定我的逻辑是对还是错 示例问题 “假设我有一个8位带符号的十进制值200,以2的形式表示…” 我的思维过程 现在,因为它是8位并且是有符号的,所以必须为符号保留最高有效位 因此,其最大正值为: 2^(8-1)-1=127 一开始我很困惑,因为我想,为什么这个问题说200可以是8位的,并且是有符号的?然后我想,这就是两人的赞美之词受到质疑的地方 因为这实际上是两个人的赞美,所以情况就是这样: 8位带符号,2的补充,十进制=200 转换为二进制-->1100 1000 因为它是有符号的

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

示例问题

“假设我有一个8位带符号的十进制值200,以2的形式表示…”

我的思维过程

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

因此,其最大正值为:

2^(8-1)-1=127

一开始我很困惑,因为我想,为什么这个问题说200可以是8位的,并且是有符号的?然后我想,这就是两人的赞美之词受到质疑的地方

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

8位带符号,2的补充,十进制=200

转换为二进制-->1100 1000

因为它是有符号的,所以实际的两个恭维数实际上是-56(我会使用否定的方法来反转1和0,然后+1,但是为了时间的利益,我刚刚在网上找到了一个转换器)

因此,我的结论是:

8位带符号,2的补充,200的十进制值实际上是-56

终极问题


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

是的,我认为你的分析是正确的

更详细地说,我认为这个问题的措词很尴尬,最好是“以10为基数的1100 1000的值是多少,其中数字是2的补数?”


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

那么十进制数字200是如何表示的呢?或者我们不能?我需要这方面的更新…任何阅读这个?200的链接都不能用2的补码表示为8位,范围是-127 128。要么这些位必须解释为无符号整数,要么需要更多的位(至少9位)将200表示为2的补码