最終更新日:2026年7月16日
fe fe-technology basic-theory
まず結論
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点です。
- DとBは、ほぼ比例する
- 2進数の方が多くの桁を使う
- 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) と逆にしない
- 厳密な桁数では、値の範囲や切上げを確認する