我需要找出我们如何表示二进制补码系统-1
中-3
的最小位数。我计算了答案1
,111
但答案似乎不正确。如果我能得到一些帮助,我将不胜感激。谢谢
user379888
问问题
4552 次
2 回答
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. 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 回答