16進数から2進数への変換
各hex桁が正確に4つのバイナリビットにマッピングされる直接的なhex-to-binary変換方法を学びます。即座の変換のためのニブルテーブルをマスターします。
Conversion
Hex
4F = 0100 1111
ASCII
Base-16 → Base-2
詳細な説明
16進数から2進数への変換は、すべての基数変換の中で最も単純です。各hex桁は正確に4つの2進数字(ビット)に直接マッピングされるためです。これは偶然ではなく、16 = 2⁴であるため、16進数はバイナリデータのコンパクトな表記法として特別に設計されました。
ニブルテーブル — これを暗記:
「ニブル」は4ビットのグループです。各hex桁は1つのニブルに対応します:
| Hex | バイナリ | Hex | バイナリ |
|---|---|---|---|
| 0 | 0000 |
8 | 1000 |
| 1 | 0001 |
9 | 1001 |
| 2 | 0010 |
A | 1010 |
| 3 | 0011 |
B | 1011 |
| 4 | 0100 |
C | 1100 |
| 5 | 0101 |
D | 1101 |
| 6 | 0110 |
E | 1110 |
| 7 | 0111 |
F | 1111 |
変換方法:
各hex桁をその4ビットバイナリ等価物に置き換えるだけです。算術は不要です。
例 — 4Fをバイナリに変換:
4→0100F→1111- 結果:
0100 1111
例 — A3をバイナリに変換:
A→10103→0011- 結果:
1010 0011
例 — FFをバイナリに変換:
F→1111F→1111- 結果:
1111 1111(全8ビットセット = 10進数で255)
hexとバイナリが自然にリンクする理由:
1バイト(8ビット)は正確に2つのhex桁で表されます。1つのhex桁は正確に1つのニブル(4ビット)を表します。この1:1マッピングが、hexがバイナリデータの好ましい表記法である理由です — バイナリの4倍コンパクトでありながら、変換パスは自明です。
実用的なアプリケーション:
- ビットフィールド分析:
0x83のようなhex値がフラグバイトを表す場合、バイナリ(1000 0011)に変換すると、どのビットがセットされているか(ビット7、1、0)が即座にわかる - サブネットマスク: マスク
FF FF FF 00は11111111 11111111 11111111 00000000に変換され、/24プレフィックスが可視化される - カラーチャンネル: 1チャンネルのhexカラー
#3Cはバイナリで0011 1100
逆変換(バイナリからhex):
バイナリ桁を右から左に4つずつグループ化し、各グループをニブルテーブルで検索します。例えば、110101は0011 0101(8ビットにパディング)= hexで35になります。
ユースケース
hexからバイナリへの変換は、CPUレジスタフラグの分析、ネットワークプロトコルビットフィールドの解釈、ファイルパーミッションマスクの理解、ビットレベルでのハードウェア通信のデバッグ時に使用されます。