質問

この質問は、おそらく典型的なスタックフローではないかもしれませんが、私のこの小さな質問をどこで尋ねるべきかわかりません。

問題:

10進数16のバイナリ表現でビット数を見つけますか?

今、私は式を使用してこれを解決しようとしました$ 2^n = 16 rightArrow n = 4$しかし、私のモジュールで提案されている正しい答えは5です。誰もがどのように説明できますか?


いくつかの答えを読んだ後(そして、正しい答えを受け入れる前にさらに10個のミントがあります)、これはおそらく数学的式と一致する説明だと思います。

16を表すには、17のシンボル(0,16)を表す必要があります。 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.

したがって、16を表すには5ビットが必要です。

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

したがって、10進31までのものには、5ビットしか必要ありません。

これは古典的なフェンスポストエラーです。

ご存知のように、コンピューターは0からカウントを開始するのが好きです。

したがって、16を表すには、0、1、2、3、および4(= floor(log2(16)))が必要です。

しかし、実際に0〜4を含むには、5ビットが必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top