基本情報技術者試験(科目A)において、毎年必ずと言っていいほど出題されるのが「基数変換(進数変換)」です。
「2進数や16進数の計算がややこしくて苦手……」
「小数が出てくると急に解けなくなる……」
「2の補数の仕組みがよくわからない……」
そんな悩みを持っていませんか?実は、基数変換には「決まった手順」と「計算を劇的に速くするコツ」があります。
この記事では、初学者向けに基数変換の基本から、試験で差がつく小数・負数(2の補数)の表現、さらには一瞬で答えが出る裏技まで、ステップ形式でわかりやすく解説します!
目次
そもそも「基数」とは?4つの進数を整理しよう
基数とは、数値を表現するときの「桁上がりの基準」となる数のことです。私たちが日常使っているのは10進数ですが、ITの世界では以下の4つの進数が中心に使われます。
| 進数 | 基数 | 使用する記号(文字) | 例 |
|---|---|---|---|
| 10進数 | 10 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 | 75 |
| 2進数 | 2 | 0, 1 | 1001011 |
| 8進数 | 8 | 0, 1, 2, 3, 4, 5, 6, 7 | 113 |
| 16進数 | 16 | 0〜9, A, B, C, D, E, F | 4B |
16進数では、10進数の「10」以降を1桁で表すためにアルファベットを使います。計算時は必ず以下の値に置き換えて考えましょう。
A = 10, B = 11, C = 12, D = 13, E = 14, F = 15
整数部分の基数変換:まずは基本の2パターン
10進数 → 別の進数(割り算方式)
10進数の整数を別の進数に変換する場合、変換先の基数で「商が0になるまで」割り続け、その余りを下から逆に並べるのが確実な方法です。
■ 例題:10進数「75」を2進数にする
- 75 ÷ 2 = 37 … 余り 1
- 37 ÷ 2 = 18 … 余り 1
- 18 ÷ 2 = 9 … 余り 0
- 9 ÷ 2 = 4 … 余り 1
- 4 ÷ 2 = 2 … 余り 0
- 2 ÷ 2 = 1 … 余り 0
- 1 ÷ 2 = 0 … 余り 1 (商が0になったので終了)
👉 余りを下から順に並べると 1001011 となります。
別の進数 → 10進数(重み付け方式)
2進数などの各桁には、基数に応じた「重み(位)」があります。それぞれの桁の数字に重みを掛け合わせ、すべてを合計すれば10進数になります。
2進数の重みは、右から順に … 128, 64, 32, 16, 8, 4, 2, 1 と2倍ずつ増えていきます。これを問題用紙の余白にメモしておくだけで、変換計算のスピードが劇的に上がります!
■ 例題:16進数「A5」を10進数にする
16進数の「A」は10進数で「10」です。重みは16の位と1の位になります。
計算式:(10 × 16) + (5 × 1) = 160 + 5 = 165
【超重要】時間短縮!2進数を経由する「ビット刻み」の裏技
試験本番で「8進数 ⇄ 16進数」や「10進数以外の進数同士」の変換が出たとき、律儀に毎回10進数に戻して計算していませんか?それでは時間が足りなくなってしまいます。
ここで絶対に覚えておきたいのが、「一度2進数に戻してから変換する」という最強のショートカット技です。ポイントは、進数に応じた「ビットの区切り方」にあります。
- 8進数=「3ビット刻み」(2³=8 なので、3桁の2進数で8進数の1桁を表せる)
- 16進数=「4ビット刻み」(2⁴=16 なので、4桁の2進数で16進数の1桁を表せる)
具体例:8進数「163」を16進数に変換する
普通に解こうとすると「8進数 → 10進数 → 16進数」と2回も面倒な計算が必要ですが、2進数を挟むと一瞬で解けます。
ステップ1:8進数の各桁を「3ビットの2進数」にばらす
・1 → 001
・6 → 110
・3 → 011
これらをガッチャンコと繋げると、2進数の 001110011 になります。
ステップ2:右(下位桁)から「4ビットずつ」に区切り直す
繋げた 001110011 を、右から4桁ずつ縦棒で区切ってみます。
👉 0 | 0111 | 0011
(※先頭の 0 は余りなので無視してOKです)
ステップ3:4ビットの塊をそれぞれ16進数に直す
・0111 → 16進数で 7
・0011 → 16進数で 3
並べるだけで、あっという間に16進数の 73 が導き出せました!
試験で差がつく!「小数」の基数変換
小数になると苦手意識を持つ人が増えますが、ルールは整数と逆になるだけです。
10進数小数 → 2進数小数(掛け算方式)
小数部に「2」を掛け、その積の整数部を上から順に取り出す操作を、小数部が0になるまで繰り返します。
■ 例題:10進数「0.375」を2進数にする
- 0.375 × 2 = 0.75 → 整数部 0 を取り出す
- 0.75 × 2 = 1.50 → 整数部 1 を取り出す(残りは0.5)
- 0.5 × 2 = 1.00 → 整数部 1 を取り出す(小数部が0で終了)
👉 上から順に並べて「0.」の後ろにつける:0.011
10進数では「0.2」や「0.4」のようにすっきり表せる小数でも、2進数にすると掛け算が無限にループしてしまうケースがあります。午前試験では「2進数にすると無限小数になるものはどれか」という形式でよく狙われます。
16進数小数 → 10進数小数
16進数の小数第1位の重みは 1/16(0.0625)、第2位は 1/256 になります。
■ 例題:16進数「0.C」を10進数にする
16進数の「C」は10進数で「12」です。
計算式:12 × (1/16) = 12/16 = 3/4 = 0.75
先ほどのビット刻みの裏技は小数でも使えますが、区切る方向に罠があります。
・整数部: 小数点から【左(←)】に向かって3ビット(または4ビット)ずつ区切る
・小数部: 小数点から【右(→)】に向かって3ビット(または4ビット)ずつ区切る
もし端っこでビットが足りなくなったら、整数部は「左端に0を足す」、小数部は「右端に0を足す」という基本ルールを忘れないようにしましょう!
※PR
実務レベルのWeb・デザインを体系的に学びたい方は、

コンピュータのマイナス表現「2の補数」の仕組み
コンピュータの内部で負(マイナス)の整数を表現するときに使われるのが「2の補数」です。
10進数の負数を「2の補数(2進数)」にする3ステップ
- 絶対値(正の数)を普通の2進数で表す。
- すべてのビットを反転させる(0を1に、1を0にする → 1の補数)。
- 反転した結果に、「1」を足す(→ 2の補数)。
例題:10進数の「-5」を4ビットの2の補数にする
- 「5」を4ビットの2進数にする:
0101 - ビットをすべて反転する:
1010 - 「1」を足す:
1010 + 1 = 1011
👉 答えは 1011 となります。
「行きが『反転して1を足す』なら、帰りは『1を引いてから反転』では?」と思いがちですが、実は帰りもまったく同じ「反転して1を足す」だけで元の正の数に戻ることができます。
これは、2の補数計算の本質が「ベースとなる数(4ビットなら16)からその数を引き算する」という鏡のような対称性を持っているためです。コンピュータは同じ計算回路を使い回せるため、この非常に合理的な仕組みを採用しています。
まとめ:繰り返し演習して得点源にしよう!
基本情報技術者試験の基数変換を攻略するコツは以下の3つです。
- 16進数のアルファベット(A=10〜F=15)を即座に脳内変換できるようにする
- 2進数・8進数・16進数の相互変換は「2進数のビット刻み」を使いこなす
- 2の補数は、行きも帰りも「反転して1を足す」
基数変換は、暗記ではなく「解き方の慣れ」がすべてです。いくつかの過去問や類似問題を繰り返し解くことで、本番では確実に数点をもぎ取れるボーナス問題に変わります。ぜひ配布中のPDFを使って繰り返し練習してみてください!
コメント