1

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

4

2 回答 2

1

这是您可能已经熟悉的公式:N' = 2^n - N. 其中 n 是位数,N'-N补码的十进制表示,并且N是基数。例如,short int x = -6N' = 2^8 - 6 = 250在转换为unsigned short int.

现在,使用这个公式,您可以得到n = log(N+N')(以 2 为底的对数)。

编辑:

我更关注比特数。现在我重新阅读了你的问题......让我给你一个答案:你需要至少两位来表示 3 并且你需要额外的一位来表示signness,这意味着你至少需要 3 位来表示 - 3. 1 也是如此。考虑到这一点,[011] = 3,取 1 的补码(反转位)=> [100] 并添加 1 => [101] = -3。至于-1,你也这样做。[01] = 1,反转位 => [10] => 加一 => [11] = -1。

就是这样,我想...

于 2011-11-20T20:15:39.817 回答
0

-1可以用 (-4 + 1) 来表示1并且-3可以用101(-4 + 1) 来表示。

111等于十进制-1(-4 + 2 + 1)。

于 2013-08-08T12:40:50.907 回答