Skip to the content.

最終更新日:2026年7月16日

まず結論

2進数で B桁 の正の整数を10進数で表したときの桁数 D は、おおよそ次の式で見積もれます。

[ D \fallingdotseq B\log_{10}2 ]

(\log_{10}2 \fallingdotseq 0.301) なので、試験では次の形で覚えると判断しやすくなります。

[ D \fallingdotseq 0.3B ]

つまり、2進数の桁数を約3割にすると、10進数のおおよその桁数になるという関係です。

直感的な説明

同じ整数でも、2進数は使える数字が0と1だけなので、10進数より多くの桁が必要です。

例えば、8ビットで表せる正の整数の最大値は255です。

2進数:11111111  → 8桁
10進数:255       → 3桁

8に0.3を掛けると、

[ 8 \times 0.3 = 2.4 ]

となり、切り上げればおよそ3桁です。

このように、実際に進数変換をしなくても、桁数だけなら対数を使って見積もれます。

定義・仕組み

10進数でD桁の数

10進数でD桁の正の整数は、次の範囲にあります。

[ 10^{D-1} \leq X < 10^D ]

例えば4桁なら、1000以上9999以下です。

2進数でB桁の数

2進数でB桁の正の整数は、次の範囲にあります。

[ 2^{B-1} \leq X < 2^B ]

例えば8桁なら、2進数の10000000から11111111までです。

おおよその大きさをそろえる

同じ整数Xを表しているので、桁数の関係だけを見ると、次のように近似できます。

[ 10^D \fallingdotseq 2^B ]

両辺の常用対数を取ります。

[ \log_{10}10^D \fallingdotseq \log_{10}2^B ]

対数の性質 (\log_a x^n=n\log_a x) を使うと、

[ D\log_{10}10 \fallingdotseq B\log_{10}2 ]

(\log_{10}10=1) なので、

[ D \fallingdotseq B\log_{10}2 ]

となります。

このテーマは、基本情報技術者試験の「基礎理論」や「情報の表現」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、2進数と10進数の桁数の関係を表す式や、ビット数から10進数の桁数を見積もる問題として出題されます。

判断の軸は次の3点です。

  1. DとBは、ほぼ比例する
  2. 2進数の方が多くの桁を使う
  3. 10進数の桁数は、2進数の桁数の約0.3倍

したがって、候補式を見るときは次のように切れます。

式の特徴 判断
DがBに比例している 候補になる
Bが対数の中に入っている 桁数の増え方が遅すぎる
係数が約0.3 実際の関係と合う
係数が約3.3 2進数と10進数の関係が逆

特に、次の二つを逆にしないことが重要です。

[ \log_{10}2 \fallingdotseq 0.301 ]

[ \log_2 10 \fallingdotseq 3.322 ]

2進数B桁から10進数D桁を求めるときは、DはBより小さくなるため、掛ける係数は 0.301 の方です。

よく使う概算

2進数の桁数 計算 10進数のおおよその桁数
8ビット 8×0.3=2.4 3桁
16ビット 16×0.3=4.8 5桁
32ビット 32×0.3=9.6 10桁
64ビット 64×0.3=19.2 20桁

これは桁数の概算なので、端数が出た場合は、通常は次の整数へ切り上げて考えます。

どんな場面で使う?

この関係は、整数を実際に10進数へ変換せず、必要な表示桁数や保存領域を見積もるときに使えます。

例えば、次のような場面です。

  • 16ビットの整数を画面に何桁で表示するか考える
  • 最大値を文字列にすると何文字程度になるか見積もる
  • ログや帳票の表示幅を決める
  • 多倍長整数の桁数を概算する

ただし、符号付き整数では負号の1文字も必要になります。また、厳密な最大桁数を求める場合は、ビット数、符号の有無、値の範囲を確認します。

よくある誤解・混同

log₂10を掛けてしまう

(\log_2 10) は約3.32です。これをBに掛けると、10進数の桁数が2進数の桁数より多くなってしまいます。

2進数 → 10進数
桁数は減る

この向きを確認すれば、約0.3を選べます。

近似式を厳密な等式だと思う

(D \fallingdotseq 0.3B) は概算です。整数の値が桁の境界付近にある場合、単純な掛け算だけでは厳密な桁数を決められません。

厳密に求めるときは、最大値や次の式を確認します。

[ D=\lfloor \log_{10}X \rfloor+1 ]

2進数B桁なら最大値は2のB乗だと思う

Bビットの符号なし整数の最大値は、(2^B) ではなく、

[ 2^B-1 ]

です。(2^B) は、B+1桁目へ繰り上がった値です。

16ビットなら必ず10進数で5桁だと思う

16ビットで表せる数のすべてが5桁ではありません。最大値付近が5桁になるという意味です。

桁数の式は、主に 表現できる最大規模の見積り として使います。

確認問題(基本情報技術者試験対策)

24ビットの符号なし整数で表せる最大値を10進数で表したとき、その桁数として最も適切なものはどれか。ここで、(\log_{10}2=0.301) とする。

  • ア. 3桁
  • イ. 7桁
  • ウ. 8桁
  • エ. 24桁
▶ クリックして答えと解説を見る(ここを開く)

正解:ウ

24ビットの符号なし整数の最大値は (2^{24}-1) です。まず桁数を概算すると、

[ 24\times0.301=7.224 ]

となります。7.224を次の整数へ切り上げると8なので、最大値は10進数で8桁と判断できます。

実際の最大値は16,777,215です。

まとめ(試験直前用)

  • 2進数B桁から10進数D桁を見積もる式は、(D \fallingdotseq B\log_{10}2)
  • (\log_{10}2 \fallingdotseq 0.301) なので、Dはおよそ0.3B
  • 2進数から10進数にすると桁数は減る
  • (\log_2 10 \fallingdotseq 3.322) と逆にしない
  • 厳密な桁数では、値の範囲や切上げを確認する

© 2024-2026 stemtazoo. All rights reserved.