---
title: "2進数と10進数の桁数の関係とは？対数を使った見積り方【基本情報技術者試験】"
description: "2進数B桁の整数を10進数で表すと何桁になるかを、10のD乗と2のB乗の対応から整理し、log10 2≒0.301を使った概算と対数の底を逆にしない判断基準を解説します。"
last_modified_at: "2026-07-16"
canonical_url: "https://stemtazoo.github.io/fe/binary-decimal-digit-count/"
section: "fe"
---

## まず結論

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です。

```text
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：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目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進数の桁数より多くなってしまいます。

```text
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桁

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ウ**

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

\[
24\times0.301=7.224
\]

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

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

</details>

## まとめ（試験直前用）

- 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\) と逆にしない
- 厳密な桁数では、値の範囲や切上げを確認する
