2010-12-16 79 views
1

这个问题可能不是典型的stackoverflow,但不知道在哪里问这个我的小问题。为什么十进制数16 == 5的二进制表示中的位数?

问题:

查找十进制数16的二进制表示的比特的数量?

现在我试图解决这一使用公式$ 2^N = 16 \ RIGHTARROW N = $,但正确的答案由我的模块建议为5。可能有人解释如何?


读了一些答案,(也是我有10多个薄荷糖之前,我可以接受的正确答案)我觉得这可能是一个解释,那将是数学公式一致,

对于后代表16我们需要表示17码元(0,16),因此2 $^N = 17 \ RIGHTARROW N = 4.08746 $但如正需要是一个整数然后$ N = 5 $

+0

”答案似乎是5“?这是什么意思?有人可以解释吗? – 2010-12-16 11:29:52

+0

我想你只需要明白Ceil(log2(num))给你表示“num”数字所需的位数。不是数字“num”。差异是1:P – 2010-12-16 12:06:14

+0

您需要多少位数来表示100的十进制表示? – 2012-04-30 22:00:37

回答

3

如何二进制思考作品:

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

因此16将是:10000

+0

非常感谢。 – Quixotic 2010-12-16 11:32:55

2

以4比特,则可以从0表示数字至15

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

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

因此,对于任何东西为十进制31你只需要5位。

0

这是一个经典的fencepost错误。

大家知道,计算机要开始从0

计数所以以表示16时,需要比特0,1,2,3和4(=地板(LOG2(16)))。

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

相关问题