16進数から10進数への変換
16進数を10進数にステップバイステップで変換する方法を学びます。実用的な例と変換方法で16進法の位取り記法を理解します。
Conversion
Hex
FF = 255, 1A = 26, 7F = 127
ASCII
Base-16 → Base-10
詳細な説明
16進数(基数16)から10進数(基数10)への変換は、低レベルデータ、メモリアドレス、カラーコード、バイナリプロトコルを扱うすべての開発者にとって基本的なスキルです。このプロセスは、各hex桁を対応する16のべき乗で掛けて合計することで行います。
hexの数字セット:
16進数は16の数字を使用します: 0-9は値0-9を表し、A-F(大文字小文字区別なし)は値10-15を表します。
| Hex | 10進数 | Hex | 10進数 |
|---|---|---|---|
| 0 | 0 | 8 | 8 |
| 1 | 1 | 9 | 9 |
| 2 | 2 | A | 10 |
| 3 | 3 | B | 11 |
| 4 | 4 | C | 12 |
| 5 | 5 | D | 13 |
| 6 | 6 | E | 14 |
| 7 | 7 | F | 15 |
ステップバイステップの変換方法:
hexを10進数に変換するには、各桁をその位置(右から左に0から数えて)の16のべき乗で掛け、すべての積を足します。
例 — 1A3Fを10進数に変換:
- 位置3:
1× 16³ = 1 × 4096 = 4096 - 位置2:
A(10)× 16² = 10 × 256 = 2560 - 位置1:
3× 16¹ = 3 × 16 = 48 - 位置0:
F(15)× 16⁰ = 15 × 1 = 15 - 合計: 4096 + 2560 + 48 + 15 = 6719
一般的なhex値とその10進数:
FF= 255(1バイトの最大値)100= 256(バイトが保持できるよりも1大きい)FFFF= 65,535(最大の16ビット符号なし値)7F= 127(最大の符号付きバイト値 / 最高の標準ASCII)80= 128(符号付きバイトの最小負値、または拡張ASCIIの開始)7FFFFFFF= 2,147,483,647(最大の32ビット符号付き整数)
暗記すべき16のべき乗:
- 16⁰ = 1
- 16¹ = 16
- 16² = 256
- 16³ = 4,096
- 16⁴ = 65,536
- 16⁵ = 1,048,576
素早い暗算のコツ:
2桁のhex値の場合、左の桁に16を掛けて右の桁を足します。例えば、3C = 3 × 16 + 12 = 60。1桁のhex数字の場合、10進数値は明白です(0-9は同じ、A=10、B=11、C=12、D=13、E=14、F=15)。
実践での重要性:
メモリアドレス、ネットワークポート、ファイルオフセット、Unicodeコードポイント、RGBカラー値はすべて一般的に16進数で表現されます。素早く10進数に変換できることは、デバッガ出力の読み取り、バッファサイズの計算、プロトコルフィールドに期待される値が含まれているかの検証に役立ちます。
ユースケース
hexから10進数への変換は、デバッガのメモリダンプの読み取り、ファイルオフセットの計算、パケットキャプチャでのネットワークポート番号の解釈、RGBカラーチャンネル値の変換時に常に使用されます。