16進数から10進数への変換
16進数を10進数に変換する方法を分かりやすい例で解説。16進数の A-F が値 10-15 に対応する仕組みと、10進数の等価値を簡単に計算する方法を学びます。
Hexadecimal (Base 16) → Decimal (Base 10)Conversion
詳細な説明
16進数(基数16)は数字 0-9 と文字 A-F を使い、A=10、B=11、C=12、D=13、E=14、F=15 です。16進数から10進数への変換は、2進数と同じ位取り記数法の原理に従いますが、2のべき乗の代わりに16のべき乗を使います。
ステップごとの例 --- 1A3F を10進数に変換:
- 各桁と位置を書き出す(右から左へ):
1(3) A(2) 3(1) F(0) - 文字を値に置き換える:
1(3) 10(2) 3(1) 15(0) - 16のべき乗を掛ける:
1×16³ + 10×16² + 3×16¹ + 15×16⁰ - 計算:
4096 + 2560 + 48 + 15 = 6719
したがって 0x1A3F = 6719₁₀ です。
16進数が重要な理由:
16進数はバイナリデータのコンパクトな表現を提供するため、コンピューティングで広く使われています。各16進数の桁は正確に4ビットに対応するため、16進数と2進数の相互変換は極めて簡単です。1バイト(8ビット)は常に正確に2桁の16進数で、8桁の2進数よりもはるかに読みやすくなります。
覚えておくべき一般的な16進数の値:
0xFF = 255--- 1バイトの最大値0x100 = 256--- 1バイトに収まらない最初の値0xFFFF = 65535--- 16ビット符号なしの最大値0x7FFFFFFF = 2147483647--- 32ビット符号付き整数の最大値0xDEADBEEF = 3735928559--- デバッグで使われる古典的なマジックナンバー
プログラミングでのショートカット:
ほとんどの言語は16進数リテラルを直接受け付けます。JavaScript では 0x1A3F は 6719 と評価されます。Python では int("1A3F", 16) が同じ結果を返します。0x プレフィックスは16進数であることを示す世界共通の慣例です。16進数から10進数への変換は、メモリダンプの読解、バイナリプロトコルのデバッグ、カラーコードの扱いに欠かせません。
ユースケース
メモリダンプやクラッシュレポートを分析する際、開発者は 0x7FFF5FBFF8A0 のような16進数のアドレスを10進数に変換し、オフセットを計算してメモリレイアウトを理解します。