二进制补码表示所需的最小位数

时间:2011-11-20 19:31:39

标签: twos-complement

我需要找出我们如何在二进制补码数系统中以最小位数表示-1-3。我计算了答案1111,但答案似乎不正确。如果我能得到一些帮助,我将非常感激。感谢

2 个答案:

答案 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)。