我需要找出我们如何在二进制补码数系统中以最小位数表示-1
和-3
。我计算了答案1
和111
,但答案似乎不正确。如果我能得到一些帮助,我将非常感激。感谢
答案 0 :(得分:1)
以下是您可能已经熟悉的公式:N' = 2^n - N
。
其中n是位数, N'是 -N 的补码的十进制表示,N
是基数。
例如,转换为short int x = -6
时,N' = 2^8 - 6 = 250
将为unsigned short int
。
现在,使用此公式,您可以获得n = log(N+N')
(基数为2的日志)。
修改强>
我更关注的是比特数。现在我重新阅读你的问题...... 我来给你一个答案: 您需要至少两位来表示3,并且您需要一个额外的位来表示 signness ,这意味着您需要至少3位来表示-3。同样如此。考虑到这一点,[011] = 3,取一个的补码(反转位)=> [100]并添加1 => [101] = -3。 对于-1,你也是这样做的。 [01] = 1,反转位=> [10] =>添加一个=> [11] = -1。
就是这样,我想......
答案 1 :(得分:0)
-1
可由1
表示,-3
可由101
(-4 + 1)表示。
111
等于十进制-1
( - 4 + 2 + 1)。