这个问题可能不是典型的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位。

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