十六進法
十六進法は、二進数データを表すために使われる16を基数とする数体系です。10個の記号を使って数を表す十進法(基数10)とは異なり、十六進法の数字では16個の記号を使います。数値0~9を表す数字の「0」~「9」と、数値10~15を表す文字の「A」~「F」です。
十進法では、10の倍数で数えます。10個のまとまりごとに、次に大きい位の数字を1つ増やします。たとえば「8-9-10-11-12」と数えると、2番目の数字(十の位)が0から1に増え、1番目の数字(一の位)は0に戻ります。「98-99-100-101-102」と数えると、2番目と3番目の数字(3番目は百の位)が増えます。十六進法では、代わりに16個の値ごとに次に大きい位の数字を1つ増やします。たとえば「8-9-A-B-C-D-E-F-10-11-12」と数える場合、2番目の数字が増えるのは9の後ではなく、F(15番目の値)の後です。
コンピューターは、データを短く、人間が読みやすい形式で表すために、十六進数の値を使います。0と1が長く連なった文字列の代わりに、十六進数の値は簡潔で読みやすい形式になります。十六進数の各桁は、4つのビットで可能な1つの組み合わせを表します。これはニブルとも呼ばれます。たとえば、十六進数の桁Bは、特定のビット列1011を表します。バイトは8ビットなので、2桁の十六進数の組み合わせで、あらゆるバイトを表せます。十六進数の桁は大文字と小文字を区別しません。つまり、bb74とBB74は同じ値です。
十六進数では、十進数より少ない文字数で大きな数を表すこともできます。たとえば、2桁の十六進数で0~255の任意の値を表せますが、6桁の十六進数では0~16,777,215の任意の値を表せます。たとえば、次の値はすべて同じ数を表します。
- 十進数: 47,988
- 十六進数: BB74
- 二進数: 1011 1011 0111 0100
十六進数の使用
多くの十六進数は、十進数または単語として誤解される可能性があるため、十六進数であることを示す特別な表記を含むことがよくあります。たとえば、UnixとCプログラミング言語(C++やJavaなどの派生言語を含む)では、ソースコード内の十六進数の前に接頭辞0xを付けます。たとえば、0xBB74のようにします。十六進数で表されるUnicode文字には、接頭辞U+を使います。たとえば、Unicodeで文字「T」はU+0054です。
Webデザイナーやグラフィックデザイナーは、十六進カラーコードを使ってRGBカラーを表すために、十六進数の値を使うことがよくあります。これらのコードは#記号で始まり、その後に6桁の十六進数が続きます。赤、緑、青の各チャンネルについて、それぞれ0~255の値を表す2桁を使います。たとえば、#800080は、赤と青を同じ量(値128を表す十六進数80)で混ぜ、緑を使わない(値0を表す十六進数00)ことで、紫を表します。6桁の十六進数では、1,600万色を超える色を表せます。
知識をテストする