题
这个问题可能不是典型的Stackoverflow,而是不确定在哪里问我这个小问题。
问题:
在十进制数字16的二进制表示中找到位数?
现在,我尝试使用公式$ 2^n = 16 rightarrow n =解决这个问题。 4$但是我的模块建议的正确答案是5。有人可以解释如何吗?
在阅读了一些答案之后(而且我还有10个薄荷糖,然后才能接受正确的答案),我认为这可能是一个解释,这将与数学公式一致,
对于表示16,我们需要表示17个符号(0,16),因此$ 2^n = 17 rightarrow n = 4.08746$,但由于n需要成为整数,然后$ n = 5 $
解决方案
想想二进制的工作方式:
Bit 1: Add 1
Bit 2: Add 2
Bit 3: Add 4
Bit 4: Add 8
Bit 5: Add 16
因此16是:10000
其他提示
使用4位,您可以表示数字 从0到15.
因此,是的,您需要5位代表16。
Decimal - 16 8 4 2 1
Binary - 1 0 0 0 0
因此,对于十进制31的任何东西,您只需要5位。
这是一个经典的围栏错误。
如您所知,计算机喜欢从0开始计数。
因此,要代表16,您需要位0、1、2、3和4(=地板(log2(16)))。
但是要实际包含0到4的位,您需要5位。
不隶属于 StackOverflow