1

这个问题可能不是典型的stackoverflow,但我不确定在哪里问我的这个小问题。

问题:

求十进制数 16 的二进制表示中的位数?

现在我尝试使用公式 $2^n = 16 \Rightarrow n = 4 $ 来解决这个问题,但我的模块建议的正确答案是 5。有人能解释一下吗?


在阅读了一些答案之后,(而且在我接受正确答案之前,我还有 10 个薄荷糖)我认为这可能是一个解释,这将与数学公式一致,

为了表示 16,我们需要表示 17 个符号 (0,16),因此 $2^n = 17 \Rightarrow n = 4.08746 $ 但由于 n 需要是整数,因此 $n = 5$

4

4 回答 4

3

想想二进制是如何工作的:

Bit 1: Add 1
Bit 2: Add 2
Bit 3: Add 4
Bit 4: Add 8
Bit 5: Add 16

因此 16 将是:10000

于 2010-12-16T11:31:41.613 回答
2

使用 4 位,您可以表示从 0 到 15 的数字。

所以是的,你需要 5 位来表示 16。

于 2010-12-16T11:33:23.793 回答
1
Decimal - 16 8 4 2 1
Binary -   1 0 0 0 0

因此,对于十进制 31 以内的任何内容,您只需要 5 位。

于 2010-12-16T11:33:53.523 回答
0

这是一个经典的栅栏错误。

如您所知,计算机喜欢从 0 开始计数。

因此,要表示 16,您需要位 0、1、2、3 和 4(= floor(log2(16)))。

但要实际包含位 0 到 4,您需要 5 位。

于 2012-04-30T21:15:41.667 回答