【问题标题】:Why does the number of bits in the binary representation of decimal number 16 == 5?为什么十进制数16的二进制表示中的位数== 5?
【发布时间】:2012-05-01 05:19:49
【问题描述】:

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

问题:

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

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


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

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

【问题讨论】:

  • “答案似乎是 5”?这是什么意思?谁能解释一下?
  • 我想您只需要了解 Ceil(log2(num)) 为您提供了表达“num”数字所需的位数。不是数字“num”。区别是1:P
  • 100的十进制表示需要多少位?

标签: digital-logic


【解决方案1】:

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

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

因此 16 将是:10000

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:
      Decimal - 16 8 4 2 1
      Binary -   1 0 0 0 0
      

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

      【讨论】:

        【解决方案4】:

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

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

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

        但要真正包含位 0 到 4,则需要 5 位。

        【讨论】:

          猜你喜欢
          • 2020-01-24
          • 2010-11-08
          • 2016-07-24
          • 1970-01-01
          • 2020-10-31
          • 2017-01-18
          • 2016-01-01
          • 2013-05-02
          相关资源
          最近更新 更多