基数変換とは(全体像)
基数変換とは、ある進数を、別の進数に直すことだ。たとえば、10進数を2進数にしたり、2進数を10進数にしたり、という変換のことをいう。
コンピュータは2進数で動くが、人間は10進数で考える。だから、両者を行き来する「変換」が必要になる。やり方は向きによって変わるので、次で見ていこう。
詳しく:変換の手順(計算例つき)
ここが心臓部。2つの向きの手順を、例で見よう。
基数変換の手順
| 向き | やり方 |
|---|---|
| 10進数→2進数 | 2で割っていき、出た余りを逆順に並べる |
| 2進数→10進数 | 各桁に1・2・4…の重みをかけて、全部足す |
10進数の13を2進数にするには、2で割り続け、余りをメモする。
- 13 ÷ 2 = 6 余り 1
- 6 ÷ 2 = 3 余り 0
- 3 ÷ 2 = 1 余り 1
- 1 ÷ 2 = 0 余り 1
ここで一番のポイント。余りは「逆順」(下から上へ)に並べる。だから、1101(10進数の13)となる。「余りを上から順に並べる」と思い込むと誤りになる。
逆に、2進数の1101を10進数にするには、各桁に重みをかけて足す。1×8 + 1×4 + 0×2 + 1×1 = 13。きちんと元に戻る。
なお、小数の部分は、整数とはやり方が違う(掛け算で求める)。整数と同じやり方だと思い込むと誤りなので、注意だ。
わかりやすく言い換えると
身近なたとえで整理しよう。
基数変換は、「同じ数を、ちがう書き方(進数)に言い換えること」のイメージ。中身の量は同じで、書き方だけ変わる。
10進数→2進数は、「2で割り続けて、出た余りを下から読む」こと。要するに、余りを逆順に並べる。
2進数→10進数は、「各桁に重み(1・2・4…)をかけて足す」こと。つまり、位ごとの値を合計する。
試験のツボ
🔴 一番出る:10進数→2進数
①2で割っていき、出た余りをメモする
②余りを「逆順」に並べる(13なら1101)
🔴 次に出る:2進数→10進数
①各桁に1・2・4…の重みをかける
②全部足す(1101なら8+4+0+1=13)
🟡 押さえると安定:小数部は別
①小数の部分は、整数とはやり方が違う
②小数部は、基数で掛けて求める
よくある間違い
①「10進数→2進数では、余りを上から順に並べる」→ ✗ 余りは「逆順」(下から上へ)に並べる。13なら1101。
②「2進数→10進数は、各桁をそのまま足すだけだ」→ ✗ 各桁に1・2・4…の重みをかけてから、足す。
③「小数の部分も、整数の部分と同じやり方で変換する」→ ✗ 小数の部分は、整数とはやり方が違う(掛け算で求める)。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(基数変換の正体)
基数変換に関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
- 完成したシステムを宣伝して、より多く売るための広告活動である
- ある進数を、別の進数に直すこと(10進数⇔2進数など)である
解答は 4 だぱん。
基数変換は、ある進数を、別の進数に直すことなんだぱん。10進数と2進数を行き来する変換だぱん。
選択肢1は給与計算、選択肢2は請求書の事務、選択肢3は広告で、どれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✗ | 請求書の事務の話 |
| 3 | ✗ | 広告活動ではない |
| 4 | ✓ | 進数を別の進数に直すことで正しい |
オリジナル問題2(10進数→2進数)
10進数を2進数にする手順として、最も適切なものはどれか。
- 2で割っていき、出た余りを上から順番にそのまま並べるものだ
- 2で割っていき、出た余りを逆順に並べる(13なら1101)
- 社員の給与を計算して、その金額をそのまま並べるものである
- 取引先へ請求書を郵送した枚数を、そのまま並べるものである
解答は 2 だぱん。
10進数を2進数にするには、2で割っていき、出た余りを逆順に並べるんだぱん(13なら1101)。上から順ではなく、逆順だぱん。
選択肢1の「上から順」、選択肢3の給与、選択肢4の請求書は、いずれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 余りは逆順に並べる |
| 2 | ✓ | 割って余りを逆順で正しい |
| 3 | ✗ | 給与計算の話ではない |
| 4 | ✗ | 請求書の枚数ではない |
オリジナル問題3(2進数→10進数)
2進数を10進数にする手順として、最も適切なものはどれか。
- 各桁に1・2・4…の重みをかけて、全部足す(1101なら13)
- 各桁を、重みをかけずにそのまま足すだけでよいとされている
- 社員の給与を計算して出た金額を、そのまま使うとされているものだ
- 取引先へ請求書を郵送した枚数を、そのまま使うとされている
解答は 1 だぱん。
2進数を10進数にするには、各桁に1・2・4…の重みをかけて、全部足すんだぱん(1101なら8+4+0+1=13)。
選択肢2の「重みをかけず足す」、選択肢3の給与、選択肢4の請求書は、いずれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | 重みをかけて足すで正しい |
| 2 | ✗ | 重みをかけてから足す |
| 3 | ✗ | 給与の金額ではない |
| 4 | ✗ | 請求書の枚数ではない |
まとめ
押さえどころ
- 🔴 基数変換 = ある進数を、別の進数に直すこと(10進数⇔2進数など)。
- 🔴 10進数→2進数 = 2で割っていき、出た余りを逆順に並べる(13なら1101)。
- 🟡 2進数→10進数 = 各桁に1・2・4…の重みをかけて、全部足す(1101なら13)。
次に学ぶ
執筆: SikakuQuest編集部