- 「10進数の53を2進数に変換せよ」と言われて、手順が出てこない
- 2進数→10進数はできるけど、逆方向になると混乱する
- 16進数が絡んだ瞬間に「A=10, B=11…」で頭がパンクする
- 補数?1の補数?2の補数?何がなんだかわからない
- 10進数 ⇄ 2進数 ⇄ 16進数の変換を「割り算の余りを下から読む」の1パターンで統一
- 2進数の加算・減算の手順(繰り上がり・繰り下がり含む)
- 1の補数・2の補数の意味と求め方を「車のオドメーター」で直感理解
電験三種・機械科目の「情報」分野では、n進数の変換問題が出ます。出題頻度は毎回ではありませんが、出たときは「知っていれば30秒で解ける、知らなければ0点」という完全な知識問題です。
しかも、変換手順はたった1つのパターンで全部カバーできます。「n で割って、余りを下から読む」——これだけです。この記事では、その手順を省略なしの筆算つきで解説します。一度手を動かせば、試験本番でも迷いません。
目次
そもそも「n進数」とは?|なぜ2進数や16進数が存在するのか
私たちが普段使っている「10進数」は、0〜9の10種類の数字を使い、10になると桁が上がる仕組みです。なぜ10種類かというと、人間の指が10本だから。ただそれだけの理由です。
一方、コンピュータは電気のON/OFFしか区別できません。つまり「0」と「1」の2種類だけ。だから2になると桁が上がる「2進数」を使います。
10進数
0〜9 の10種類
人間が使う。
指が10本だから10進数。
10になると桁が上がる。
2進数
0 と 1 の2種類
コンピュータが使う。
電気のON/OFFだけ。
2になると桁が上がる。
16進数
0〜9, A〜F の16種類
2進数を短く書くための便利表記。
4桁の2進数=1桁の16進数。
16になると桁が上がる。
2進数は桁が長すぎて人間には読みにくい。たとえば10進数の「255」は2進数で「11111111」(8桁)ですが、16進数なら「FF」(2桁)で済みます。つまり16進数は「2進数を人間が読みやすいように圧縮した表記」です。
16進数のアルファベット対応表
16進数では10以上の数を1桁で表すために、アルファベットを使います。この対応表は丸暗記してください。
| 10進数 | 0 | 1 | 2 | … | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 16進数 | 0 | 1 | 2 | … | 9 | A | B | C | D | E | F |
A=10 だけ覚えれば、あとはアルファベット順に B=11, C=12, D=13, E=14, F=15 と1ずつ増えるだけです。Fが15(=16の1つ手前)であることを確認できれば、すべてのアルファベットを復元できます。

【変換①】10進数 → 2進数|「2で割って余りを下から読む」
これがn進数変換の最も基本的な手順です。この「割り算→余り→下から読む」のパターンさえ覚えれば、2進数でも16進数でも同じ方法で変換できます。
手順:「2で割り続けて、余りを下から読む」
10進数を 2で割る。商と余りを書く。
商が 0になるまで 割り算を繰り返す。
余りを 下から上に向かって 読む。それが答え。
計算例:10進数の「53」を2進数に変換する
実際に手を動かしてみましょう。53を2で割り続けます。
| 53 | ÷ 2 = | 26 | 余り | 1 | ← ① |
| 26 | ÷ 2 = | 13 | 余り | 0 | ← ② |
| 13 | ÷ 2 = | 6 | 余り | 1 | ← ③ |
| 6 | ÷ 2 = | 3 | 余り | 0 | ← ④ |
| 3 | ÷ 2 = | 1 | 余り | 1 | ← ⑤ |
| 1 | ÷ 2 = | 0 | 余り | 1 | ← ⑥(商が0→終了) |
余りを下から上に向かって読みます。⑥→⑤→④→③→②→① の順で 1, 1, 0, 1, 0, 1。
10進数の 53 = 2進数の 110101
余りを上から読んでしまうことです。上から読むと「101011」になり、まったく違う数になります。「下から読む!」を試験中も必ず意識してください。筆算の横に↑(上向き矢印)を書いておくのがおすすめです。

【変換②】2進数 → 10進数|「各桁に2の累乗をかけて足す」
次は逆方向の変換です。こちらは「割り算」ではなく「かけ算して足す」だけなので、比較的シンプルです。
手順:各桁の数字 × 2のn乗 を全部足す
2進数の各桁には「重み」があります。右端が2⁰(=1)、その左が2¹(=2)、さらに左が2²(=4)…と、左にいくほど2倍になっていきます。これは10進数で「一の位、十の位、百の位…」と10倍ずつ増えていくのと同じ仕組みです。
計算例:2進数「110101」を10進数に変換する
先ほどの答え合わせをしてみましょう。2進数の「110101」に、右から順に2の累乗の重みをかけて足します。
| 桁の位置 | 左から6桁目 | 5桁目 | 4桁目 | 3桁目 | 2桁目 | 1桁目 |
|---|---|---|---|---|---|---|
| 2進数の各桁 | 1 | 1 | 0 | 1 | 0 | 1 |
| 重み(2のn乗) | 2⁵=32 | 2⁴=16 | 2³=8 | 2²=4 | 2¹=2 | 2⁰=1 |
| 計算 | 1×32=32 | 1×16=16 | 0×8=0 | 1×4=4 | 0×2=0 | 1×1=1 |
32 + 16 + 0 + 4 + 0 + 1 = 53
きちんと53に戻りました。2進数→10進数の変換は、「1が立っている桁」の重みだけ足せばいいので、0の桁は無視して構いません。
電験三種では電卓が使えないので、2の累乗は暗記必須です。
2⁰=1, 2¹=2, 2²=4, 2³=8, 2⁴=16, 2⁵=32, 2⁶=64, 2⁷=128, 2⁸=256
ここまで覚えていれば、機械科目の情報問題には十分対応できます。

【変換③】10進数 → 16進数|「16で割って余りを下から読む」
手順は10進数→2進数とまったく同じです。割る数が「2」から「16」に変わるだけ。余りを下から読むのも同じです。
計算例:10進数の「500」を16進数に変換する
| 500 | ÷ 16 = | 31 | 余り | 4 | ← ①(16進数で 4) |
| 31 | ÷ 16 = | 1 | 余り | 15 | ← ②(16進数で F) |
| 1 | ÷ 16 = | 0 | 余り | 1 | ← ③(商が0→終了) |
余りを下から読みます。③→②→① の順で 1, F, 4。
10進数の 500 = 16進数の 1F4
余りが10〜15のとき、そのまま数字で書かずアルファベットに変換するのを忘れないでください。余り「15」をそのまま書いて「1(15)4」と答えても不正解です。必ずFに変換します。
検算してみましょう。16進数「1F4」を10進数に戻します。
1 × 16² + F(=15) × 16¹ + 4 × 16⁰
= 1 × 256 + 15 × 16 + 4 × 1
= 256 + 240 + 4
= 500 ✅

【変換④】2進数 ⇄ 16進数|「4桁ずつ区切る」だけの最短ルート
2進数と16進数の変換には、10進数を経由しなくてよいショートカットがあります。2進数の4桁=16進数の1桁が常に対応するため、「4桁ずつ区切って変換するだけ」で完了します。
2⁴ = 16 だからです。2進数の4桁で表せる範囲は 0000〜1111(10進数で0〜15)。これは16進数の1桁(0〜F)とぴったり一致します。
2進数→16進数の変換表(丸暗記の必要なし)
| 2進数(4桁) | 10進数 | 16進数 | 2進数(4桁) | 10進数 | 16進数 | |
|---|---|---|---|---|---|---|
| 0000 | 0 | 0 | 1000 | 8 | 8 | |
| 0001 | 1 | 1 | 1001 | 9 | 9 | |
| 0010 | 2 | 2 | 1010 | 10 | A | |
| 0011 | 3 | 3 | 1011 | 11 | B | |
| 0100 | 4 | 4 | 1100 | 12 | C | |
| 0101 | 5 | 5 | 1101 | 13 | D | |
| 0110 | 6 | 6 | 1110 | 14 | E | |
| 0111 | 7 | 7 | 1111 | 15 | F |
計算例:2進数「110101」を16進数に変換する
右端から4桁ずつ区切るのがポイントです。左端の桁が4桁に満たない場合は、先頭に0を補います。
11 | 0101
↓ 先頭に0を補って4桁にする
0011 0101
0011 = 3 0101 = 5
2進数の 110101 = 16進数の 35
検算:16進数の35 = 3×16 + 5×1 = 48 + 5 = 53 ✅ 先ほどの10進数と一致します。
逆方向(16進数→2進数)は、16進数の各桁を4桁の2進数に展開するだけです。16進数「35」なら、3→0011、5→0101 で「00110101」。先頭の0を外して「110101」です。

変換ルートの全体マップ|どの方向でも迷わない
ここまでの変換ルートを1枚にまとめます。試験中に「あれ、どっちの方法だっけ?」と迷ったら、このマップを思い出してください。
① 10進数 → n進数:「n で割って余りを下から読む」
② n進数 → 10進数:「各桁 × nの累乗 を全部足す」
③ 2進数 ⇄ 16進数:「4桁ずつ区切って1対1変換」
この3パターンで、10進・2進・16進のすべての変換ができます。

2進数の加算(足し算)|繰り上がりルールは4パターンだけ
10進数の足し算で「8+5=13(3を書いて1繰り上がり)」とするのと同じように、2進数にも繰り上がりがあります。違いは「2になったら繰り上がる」という点だけです。
2進数の足し算ルール(4パターン)
| 計算 | 結果 | 繰り上がり |
|---|---|---|
| 0 + 0 | 0 | なし |
| 0 + 1 | 1 | なし |
| 1 + 0 | 1 | なし |
| 1 + 1 | 10 | あり(1繰り上がり) |
10進数で「9+1=10」になるのと同じです。2進数では「1+1=10(イチゼロ)」。0を書いて、1を左の桁に繰り上げるだけです。
計算例:1011 + 0110(10進数で 11 + 6 = 17)
繰り上がり: 1 1 1 0 1 0 1 1 + 0 1 1 0 ───────── 1 0 0 0 1
右端から1桁ずつ計算します。途中式を省略せずに書くとこうなります。
右端(1桁目): 1 + 0 = 1 → そのまま 1 を書く
2桁目: 1 + 1 = 10 → 0 を書いて 1 を繰り上げ
3桁目: 0 + 1 + 繰り上がりの1 = 10 → 0 を書いて 1 を繰り上げ
4桁目: 1 + 0 + 繰り上がりの1 = 10 → 0 を書いて 1 を繰り上げ
5桁目: 繰り上がりの1だけ → 1 を書く
検算:2進数 10001 = 1×16 + 0×8 + 0×4 + 0×2 + 1×1 = 17 ✅

2進数の減算と補数表現|引き算を「足し算」に変換する技術
コンピュータは引き算が苦手です。足し算の回路はあるのに、引き算の回路を別に作ると複雑になるからです。そこで考え出されたのが「補数」という仕組み。引き算を足し算に変換するトリックです。
補数のイメージ|「車のオドメーター」で考える
車のオドメーター(走行距離計)を想像してください。3桁表示で、999の次は000に戻ります。
今、表示が「500」です。ここから「300引きたい」とします。普通なら 500 - 300 = 200 です。
でも別の方法もあります。500に「700を足す」と、500 + 700 = 1200。3桁しか表示できないので先頭の1はあふれて消え、表示は200。同じ答えになりますよね。
この「700」が「300の10の補数」です。引きたい数の代わりに補数を足せば、引き算を足し算で実行できる——これが補数の本質です。
1の補数と2の補数の求め方
2進数の世界では「1の補数」と「2の補数」の2つがあります。求め方は極めてシンプルです。
| 補数 | 求め方 | 例(0110 の場合) |
|---|---|---|
| 1の補数 | 全ビットを反転する (0→1、1→0) |
0110 → 1001 |
| 2の補数 | 1の補数に1を足す | 1001 + 1 = 1010 |
ほとんどのコンピュータ、そして電験三種の問題では「2の補数」を使います。理由は、1の補数には「0の表現が2つできてしまう(+0と-0)」という欠点があるからです。2の補数なら0は1つだけなので、都合が良いのです。
計算例:2の補数を使って 1011 - 0110 を計算する(11 - 6 = 5)
引く数(0110)の2の補数を求める
1の補数:0110 → 1001
2の補数:1001 + 1 = 1010
元の数に2の補数を足す(引き算→足し算に変換)
1 0 1 1 (11)
+ 1 0 1 0 (6の2の補数)
─────────
1 0 1 0 1
結果が桁数を超えたら、あふれた先頭の1を捨てる。残りが答え。
1 0101 → 答えは 0101(10進数で 5)✅
「小さい数 - 大きい数」の場合、足し算の結果は桁があふれません(先頭に1が出ない)。そのとき結果はそのまま2の補数表現の負の数です。先頭ビットが1なら負、0なら正と判定します。試験では「答えが正の数になるケース」がほとんどですが、負の数の表現も知っておくと安心です。

符号付き2進数|先頭ビットが「符号」を表す仕組み
コンピュータは「マイナス記号(-)」を直接扱えません。そこで、先頭の1ビットを「符号ビット」として使うルールがあります。
先頭ビット = 0 → 正の数(+)
先頭ビット = 1 → 負の数(-)
4ビットの2の補数表現一覧
4ビット(4桁)の場合、表現できる範囲は -8〜+7 です。以下の表で全パターンを確認できます。
| 2進数 | 10進数 |
|---|---|
| 0000 | +0 |
| 0001 | +1 |
| 0010 | +2 |
| 0011 | +3 |
| 0100 | +4 |
| 0101 | +5 |
| 0110 | +6 |
| 0111 | +7 |
| 2進数 | 10進数 |
|---|---|
| 1000 | -8 |
| 1001 | -7 |
| 1010 | -6 |
| 1011 | -5 |
| 1100 | -4 |
| 1101 | -3 |
| 1110 | -2 |
| 1111 | -1 |
「nビットの2の補数表現で表せる範囲は?」という問いに対する答え:
-2n-1 〜 +2n-1 - 1
4ビットなら -2³〜+2³-1 = -8〜+7。正の数は「+7」が上限であり、+8ではありません。「なぜ正の方が1つ少ないのか?」は、0が正の側に含まれるからです。

【補足】小数の2進数変換|「2をかけて整数部を取る」
整数部の変換が「2で割る」だったのに対し、小数部の変換は「2をかける」です。割り算と掛け算で方法が逆になります。
手順:「2をかけて、整数部を上から読む」
小数部に 2をかける。
結果の整数部(0 or 1)を取り出す。残りの小数部で次の計算へ。
小数部が 0になるか、必要な桁数に達するまで繰り返す。整数部を上から順に並べる。
計算例:10進数「0.625」を2進数に変換する
| 0.625 | × 2 = | 1.25 | → 整数部 | 1 | ← ① |
| 0.25 | × 2 = | 0.5 | → 整数部 | 0 | ← ② |
| 0.5 | × 2 = | 1.0 | → 整数部 | 1 | ← ③(小数部0→終了) |
整数部の変換と違い、こちらは上から順に読みます。①→②→③ の順で 1, 0, 1。
10進数の 0.625 = 2進数の 0.101
検算:0.101 = 1×2⁻¹ + 0×2⁻² + 1×2⁻³ = 0.5 + 0 + 0.125 = 0.625 ✅
・整数の変換:割り算 →余りを下から読む ↑
・小数の変換:掛け算 →整数部を上から読む ↓
これを混同すると答えが全部ひっくり返ります。「整数は↑、小数は↓」と覚えてください。

まとめ
📝 この記事のポイント
✅ 10進数→n進数:「nで割って余りを下から読む」で統一
✅ n進数→10進数:「各桁 × nの累乗 を全部足す」
✅ 2進数⇄16進数:「4桁ずつ区切って変換」が最速
✅ 2進数の加算:1+1=10(繰り上がり)のルールだけ
✅ 2進数の減算:引く数の2の補数を求めて足す(引き算→足し算に変換)
✅ 2の補数=ビット反転(1の補数)+ 1
✅ 符号付きnビットの範囲:-2n-1 〜 +2n-1 - 1
✅ 小数の変換:「2をかけて整数部を上から読む」(整数と読む方向が逆)
n進数の変換は、一度「手順」を手で書いて覚えてしまえば、試験本番で迷うことはありません。特に「2で割って余りを下から読む」「2の補数=ビット反転+1」の2つは、何も見ずに手が動くレベルまで練習しておくと安心です。
📚 次に読むべき記事
機械科目の全10分野の出題傾向と、効率的に得点するための勉強順序がわかるロードマップ記事です。
2進数を実務で使う場面がA/D変換。量子化ビット数と分解能の関係を理解できます。
合格者が「もっと早く買えばよかった」と後悔したアイテムをランキング形式で紹介。