基数変換の「わかりやすい解き方」

〜有限小数・無限小数を一瞬で見抜く考え方〜

はじめに

情報処理技術者試験やプログラミング学習で必ず登場する 基数変換

特に多くの人がつまずくのが次のポイントです。

  • 有限小数か無限小数かの判断
  • 10進数・2進数・8進数・16進数の違い
  • 「なぜそうなるのか」が腑に落ちない

本記事では、

計算テクニックよりも「考え方」 に重点を置き、

試験でも実務でも迷わない解き方を整理します。


基数とは何か(超短縮版)

基数とは「何進数か」を表す数です。

表記基数意味
10進数100〜9 を使う
2進数20,1
8進数80〜7
16進数160〜9, A〜F

本質は 「1桁上がると何倍になるか」 です。


有限小数・無限小数を一瞬で判定する方法

結論(最重要)

分母を約分し、基数の素因数だけで構成されていれば有限小数


なぜそう言えるのか

10進数の場合

10 = 2 × 5

つまり、10進数で有限になる小数は

分母が 2 と 5 だけ で構成されているもの


例で確認

小数分数分母の素因数結果
0.51/22有限
0.251/4有限
0.1251/8有限
0.051/202²×5有限
0.33/102×5有限
1/31/33無限

👉 2と5以外が出た瞬間に無限小数


2進数・8進数・16進数の場合

各基数の素因数

進数基数素因数
2進数22
8進数8
16進数162⁴

共通点

👉 すべて 2 の累乗


判定ルールまとめ

10進数で有限 ⇔ 分母が 2 と 5 だけ
2進数で有限 ⇔ 分母が 2 だけ
8進数で有限 ⇔ 分母が 2 だけ
16進数で有限 ⇔ 分母が 2 だけ

10進2進8進
0.5 (1/2)有限有限有限
0.25 (1/4)有限有限有限
0.125 (1/8)有限有限有限
0.3 (3/10)有限無限無限

16進数 → 10進数の確実な解き方

例:3A.5C

手順① 桁の重みを書く

3 × 16¹
A × 16⁰
5 × 16⁻¹
C × 16⁻²

手順② 数値に変換

A = 10
C = 12

手順③ 計算

3×16 = 48
10×1 = 10
5×1/16 = 5/16
12×1/256 = 12/256

手順④ 分数でまとめる

5/16 = 80/256
80/256 + 12/256 = 92/256
→ 58 + 92/256
→ (58×256 + 92)/256
→ 14940/256

👉 試験では ここで選択肢と一致するかを見る


試験問題を瞬殺する視点

正しい記述になりやすいパターン

  • 「10進数で有限でも、2進数では無限になることがある」
  • 「8進数の有限小数は、10進数で無限になることがある」

間違いになりやすいパターン

  • 「10進数で有限なら、すべての進数で有限」→ ❌

まとめ(暗記用)

有限小数かどうかは
「分母」と「基数の素因数」だけを見る
  • 計算より 判定
  • 桁数より 構造
  • 暗記より 理由

これが分かると、

基数変換は「計算問題」ではなく「判断問題」になります。


おわりに

基数変換は、

コンピュータがなぜ2進数を使うのか

なぜ10進数で割り切れるのに2進数で割り切れないのか

という理解にも直結します。

試験対策だけでなく、

プログラミングの基礎体力としても非常に重要なテーマです。


訪問数 14 回, 今日の訪問数 1回