進数変換は、プログラミング、コンピューターサイエンス、デジタル回路設計において必須のスキルです。この記事では、実際の開発現場で使われる進数変換の方法を、具体例と共に詳しく解説します。
💡 重要なポイント:進数変換は単なる計算技術ではありません。コンピューターがデータを処理する仕組みを理解するための基礎知識です。
10進数を2進数に変換する最も確実な方法は「割り算による余り法」です。この方法は、プログラミングのアルゴリズムとしても実装されています。
実際の計算過程を見てみましょう:
計算式 | 商 | 余り | 説明 |
---|---|---|---|
19 ÷ 2 | 9 | 1 | 最下位ビット |
9 ÷ 2 | 4 | 1 | 2番目のビット |
4 ÷ 2 | 2 | 0 | 3番目のビット |
2 ÷ 2 | 1 | 0 | 4番目のビット |
1 ÷ 2 | 0 | 1 | 最上位ビット |
結果:1910 = 100112
検証:1×2⁴ + 0×2³ + 0×2² + 1×2¹ + 1×2⁰ = 16 + 0 + 0 + 2 + 1 = 19 ✓
参考資料:二進法の詳細 - Wikipedia
16進数から2進数への変換は、「4ビット置換法」と呼ばれる方法を使います。これは、16進数の各桁が正確に4ビットの2進数に対応するという性質を利用した効率的な変換方法です。
手順:各16進数の桁を対応する4ビットの2進数に置き換える
結果:1A316 = 0001101000112
簡略化:先頭の0を省略すると 1101000112
検証:1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 41910
2進数から10進数への変換は「位取り記数法」の原理を使います。各桁の値に、その桁の重み(2の累乗)を掛けて合計します。
手順:右から左へ、各桁に2の累乗を掛けて合計する
桁位置 | ビット値 | 重み(2の累乗) | 計算 | 値 |
---|---|---|---|---|
3 | 1 | 2³ = 8 | 1 × 8 | 8 |
2 | 1 | 2² = 4 | 1 × 4 | 4 |
1 | 0 | 2¹ = 2 | 0 × 2 | 0 |
0 | 1 | 2⁰ = 1 | 1 × 1 | 1 |
結果:11012 = 8 + 4 + 0 + 1 = 1310
10進数から16進数への変換は、2進数変換と同様に「割り算による余り法」を使用しますが、16で割り続けます。
重要:10以上の余りは文字で表現します
計算式 | 商 | 余り | 16進数表記 |
---|---|---|---|
255 ÷ 16 | 15 | 15 | F |
15 ÷ 16 | 0 | 15 | F |
結果:25510 = FF16
検証:15×16¹ + 15×16⁰ = 240 + 15 = 255 ✓
進数変換は、実際のプログラミング現場で以下のような場面で使用されます:
A: コンピューターの基本素子(トランジスタ)は、電気の「ON/OFF」という2つの状態しか持てません。この物理的制約により、2進数(0と1)が最も効率的な表現方法となっています。
A: 16進数は2進数を4桁ずつまとめて表現できるため、長い2進数を短く読みやすく表示できます。特にメモリアドレスやカラーコードの表現に便利です。
A: ①計算過程を丁寧に記録する ②変換後は必ず逆算で検証する ③基本的な2の累乗(2¹〜2⁸)を暗記する ④練習問題を繰り返し解く、これらが効果的です。