表示所需的最少位数 $(+32)_{基数10}$$(-32)_{基数10}$ 签署两人的赞美形式?

我的尝试:

32 = 0100000(第一个零 - 符号位为正)

所以为了表示 +32 我们需要 7 位

-32 = 1100000(第 1 位 1 - 符号位为负)

所以要表示 -32 我们需要 7 位

但答案给出为 6 位来存储 -32 和 7 位来存储 +32(我理解的积极情况,我认为消极情况应该是 7 位)。他的理由是——一个1位足以代表负数。我很困惑。请在此澄清

我还有以下问题:-

我们是否可以说表示负数所需的位数严格小于(或小于等于)表示相应正数所需的位数?

我们如何概括表示给定正数和负数(例如 +N 和 -N)所需的最小位数(以有符号幅度表示、有符号 1 的补码表示法和有符号 2 的补码表示法)。

有帮助吗?

解决方案

6 位补码二进制数的表示形式为\开始 32_{10} &= 10\,0000_2\\ -32_{10} &= \overline{10\,0000}_2 1_2\\ &= 01\,1111_2 1_2\\ &= 10\,0000_2 \结束{align}。这将为两个数字提供相同的表示。这意味着您不能使用 6 位数字来使用二进制补码来表示这两个值。

然而,对于 7 位二进制文​​件,它可以工作:\开始 32_{10} &= 010\,0000_2\\ -32_{10} &= OVERLINE{010\,0000}_2 1_2\ &= 101\,1111_2 1_2\\ &= 110\,0000_2 \结束{align}。正如您所看到的,最高有效位代表数字的符号。


从另一个角度看你的问题:您可以存储的最大正数/最小负数是多少 $n$-位二进制补码?那么答案就是 $2^{(n-1)}-1$ 以获得最大的积极和 $-2^{(n-1)}$ 为最小的负数。

这意味着 6 位二进制可以保存值 $-32,\点,31$ 和一个7位二进制值 $-64,点,63$. 。号码 $-32$ 然后适合 6 位二进制文​​件的范围,而 $+32$ 没有。对于后者,你还需要一点。

其他提示

There are 65 values x with -32 <= x <= +32. You cannot represent 65 values in 6 bits. Either you misread the question, or the answer 6 is wrong.

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top