16進数の各桁(0〜F)を10進数の値(0〜15)に直し、16のべき乗の重みを掛けて合計する操作。A〜Fの値を覚えていれば機械的に解けます。
16進数 → 10進数は、メモリアドレス・カラーコード・MACアドレスなどでよく見る 0〜9とA〜F の16進数表記を、私たちが慣れている10進数に翻訳する操作。各桁に 16 のべき乗の重みを掛けて全部足すだけ。
たとえばFF(16進) = 15×16 + 15×1 = 255(10進)。1B3E(16進) = 1×4096 + 11×256 + 3×16 + 14×1 = 6974(10進)。
16のべき乗の重みを覚えておけば変換が速くなります。
・16⁰ = 1
・16¹ = 16
・16² = 256
・16³ = 4096
・16⁴ = 65536
A〜F の値(暗記必須):
・A = 10、B = 11、C = 12、D = 13、E = 14、F = 15
・「10、11、12、13、14、15」とアルファベット順
計算手順:
・① 各桁を右から「1の位、16の位、256の位、…」と読み直す
・② A〜F は 10〜15 に変換
・③ 各桁を対応する重みと掛ける
・④ すべての桁の積を合計
1B3E を変換する例:
・桁位置(右から): 0, 1, 2, 3 → 重み: 1, 16, 256, 4096
・各桁: E=14, 3, B=11, 1
・寄与: 14×1=14, 3×16=48, 11×256=2816, 1×4096=4096
・合計: 14 + 48 + 2816 + 4096 = 6974
16進数の計算でつまずく最大ポイントが「A〜F の取り扱い」です。これらは見た目はアルファベットでも、計算するときは「10〜15 の数字」として扱うのが大原則。
A = 10、B = 11、C = 12
D = 13、E = 14、F = 15
16進→10進の手順を A〜F 視点で整理:
・① 各桁を見て、A〜F は 10〜15 に頭の中で置き換え
・② 置き換えた数値に、右から 1, 16, 256, 4096... の重みを掛ける
・③ すべての積を合計
例: CAFE(16) を10進数に
C → 12、A → 10、F → 15、E → 14
桁位置(右から): 3, 2, 1, 0
重み: 4096, 256, 16, 1
─────────────────────────
12×4096 + 10×256 + 15×16 + 14×1
= 49152 + 2560 + 240 + 14
= 51966
A〜F を含むときのつまずきパターン:
・「F×16 = 16」と書いてしまう(正しくは 15×16 = 240)
・「A」を 10 進数の「A」のまま扱ってしまう
・大文字小文字を区別してしまう(0xFF と 0xff は同じ)
2進数経由の早道: A〜F の暗算が苦手なら、各桁を4ビットの2進数に展開してから10進にする手もあります。
・F → 1111 → 8+4+2+1 = 15
・A → 1010 → 8+2 = 10
・FF → 11111111 → 128+64+...+1 = 255
覚えておくと便利な対応:
・FF = 255(1バイトの最大)
・7F = 127(符号付き8bit整数の最大)
・FFFF = 65535(2バイトの最大)
・0x20 = 32(ASCIIのスペース)、0x41 = 65(ASCIIの'A')