16進数(じゅうろくしんすう、Hexadecimal)とは、0から9の数字とA〜Fのアルファベットを組み合わせた、16種類の文字で数を表す表記方法のことです。私たちが普段使う10進数や、コンピューターの基本である2進数とは異なる考え方で数を表しますが、コンピューターの世界では非常によく登場します。
イメージとしては、16進数は長い暗証番号を短くまとめる速記術のようなものです。0と1だけの長い並びである2進数を、少ない桁数でぎゅっと圧縮して表せるため、人間にとって格段に読みやすくなります。
16進数とは
16進数は、桁が上がる基準となる数が16であるという点を除けば、10進数や2進数と基本的な考え方は同じです。0から9までの10個の数字だけでは16種類を表しきれないため、10・11・12・13・14・15を、それぞれA・B・C・D・E・Fというアルファベットで代用している点が最大の特徴です。
16進数の表し方
16進数では、1の位が9の次にA、B、Cと進み、Fまで到達すると桁が繰り上がって10(16進数での「16」)になります。この繰り上がりの基準が10ではなく16であるという点だけが、10進数との根本的な違いです。
16進数と2進数の関係
16進数がよく使われる最大の理由は、2進数の4桁ちょうどが、16進数の1桁にきれいに対応するという性質にあります。2進数の「1111」は16進数では「F」の1文字で表せるため、桁数の多い2進数を、より短くまとめて表現する手段として重宝されています。
16進数と10進数の変換
16進数の「F」は10進数の「15」、16進数の「10」は10進数の「16」に相当するというように、決まった計算方法で相互に変換できます。プログラミングの現場では、こうした変換を意識する場面がしばしば登場します。
16進数が使われる場面(カラーコード)
身近な例として、Webサイトなどで色を指定するカラーコードがあります。「#FF0000」のように「#」に続く6桁の16進数で、赤・緑・青それぞれの明るさを2桁ずつ表しており、この組み合わせによって無数の色を細かく指定できます。
16進数が使われる場面(メモリアドレスやエラーコード)
コンピューターの内部では、メモリ上の場所を示すメモリアドレスや、プログラムの不具合を示すエラーコードの表示にも16進数がよく使われます。桁数の多い2進数の情報を、人間にも扱いやすい短さで表現できることが、こうした場面での採用理由です。
16進数の表記方法
16進数だと一目で分かるように、数値の前に「0x」を付けたり、末尾に「H」を付けたりする表記のルールがよく使われます。「0x1A」や「1AH」と書かれていれば、これが10進数ではなく16進数であることを示しています。
なぜ16進数が便利なのか
2進数はコンピューターにとって扱いやすい一方、桁数が多くなりすぎて人間には読みづらいという弱点があります。16進数は2進数の情報量を保ったまま、桁数を4分の1に圧縮して表現できるため、コンピューターの内部データを人が確認・記録するうえでの、実用的な橋渡し役を果たしています。
| 10進数 | 2進数 | 16進数 | 備考 |
|---|---|---|---|
| 9 | 1001 | 9 | ここまでは数字のみ |
| 10 | 1010 | A | アルファベットに切り替わる |
| 15 | 1111 | F | 1桁で表せる最大値 |
| 16 | 10000 | 10 | 桁が繰り上がる |

コメント