为什么十进制数16的二进制表示中的位数= = 5?

时间:2010-12-16 11:28:41

标签: digital-logic

这个问题可能不是典型的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 个答案:

答案 0 :(得分:3)

想想二元是如何工作的:

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

因此16将是:10000

答案 1 :(得分:2)

使用4位,您可以将数字表示为0到15

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

答案 2 :(得分:1)

Decimal - 16 8 4 2 1
Binary -   1 0 0 0 0

因此,对于小数31以外的任何内容,您只需要5位。

答案 3 :(得分:0)

这是一个经典的fencepost错误。

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

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

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