Binary 是两个';补码总是有符号的吗?

Binary 是两个';补码总是有符号的吗?,binary,Binary,嘿,伙计们,我高中刚开始上计算机科学课,在做作业的时候,有一件事让我很困惑 我用的是无符号数字,我希望两个数字的补码是234(11101010)。首先我把它转换成一个一的补码(0001 0101),然后我把+1加到一的补码上,所以我应该得到(0001 0110)。 然而,当我使用在线计算器转换器时,它会给我00000000 11101010。我想你有两个误解之一: 2的补码表示有符号的数字。也不需要对正2的补码进行任何转换。因此,如果您的数字长于8位,则在这8位之前有填充,您的数字实际上是000

嘿,伙计们,我高中刚开始上计算机科学课,在做作业的时候,有一件事让我很困惑

我用的是无符号数字,我希望两个数字的补码是234(11101010)。首先我把它转换成一个一的补码(0001 0101),然后我把+1加到一的补码上,所以我应该得到(0001 0110)。
然而,当我使用在线计算器转换器时,它会给我00000000 11101010。

我想你有两个误解之一:

2的补码表示有符号的数字。也不需要对正2的补码进行任何转换。因此,如果您的数字长于8位,则在这8位之前有填充,您的数字实际上是
0000 0000。。。。1110 1010
,为正234。这个正数的2的补码就是它本身(恒等式)

8位数字
1110 1010
在2的补码中不是234(十进制)。它是一个负数22(您描述的程序中的值
0001 0110
的负数)。很可能,您的计算器假设数据的位数错误,而符号位(最高有效位)实际上是一个填充的0


小数234对于8位数字来说实际上太大了,因为您必须为符号指定一位。这意味着8位数字必须介于
-(2^7)
(2^7)-1
之间,十进制为
-128
127

这是打字错误,还是计算器给出了两个补码的原始数字?