|
|
16進数 (hexadecimal numeral) |
16進数は 16 を基数
として表した数値です。
10進数の基数は 10、 2進数 の基数は 2 です。
10進数は 0 から 9 までの 10種類の数字を使って数を表し、
数が 0 から 1、2、3… と順に増えていくとき、7、8、9 までは 1桁ですが、
次は桁上がりして 10 になります。
2進数は 0 と 1 の 2種類の数字を使って数を表し、
数が 0 から 1… と順に増えていくとき、 1桁で表せるのはここまでで、
次はやはり桁上がりして 10 になります
(この 10 は、 10進数の "2" に相当します)。
同様に、 16進数には 16種類の数字がありますが、 記号としての数字は 0 から 9 まで 10種類しかないので、
アルファベットの A 〜 F を 「数字」 として借用します。
16進数は 0 から F までの 16種類の数字を使って数を表し、
数が 0 から 1、2、3… と順に増えていくとき、7、8、9 の次は A、B、C と続き、 D、E、F までは 1桁ですが、
次は桁上がりして 10 になります
(この 10 は、 10進数の "16" に相当します)。
言い換えれば、 10進数だと 0〜9までの 10種類、 2進数だと 0 と 1 の 2種類、 16進数なら 0〜F までの 16種類の数字が 1 桁で表すことができるわけです。
コンピュータでは 2進数が使用されていますが、 2進数は桁上がりが激しいので、 大きな数値を 2進数にすると桁数も多くなります。
例えば、 10進数の 12 は 2進数では 1100 ですが、 同じく 10進数の 123 は 2進数では 1111011、
1,234 は 10011010010、 12,345 は 11000000111001、 123,456 は 11110001000100000 といった案配です。
| 10進数 | 2進数 |
|---|---|
| 1 | 1 |
| 12 | 1100 |
| 123 | 1111011 |
| 1,234 | 10011010010 |
| 12,345 | 11000000111001 |
| 123,456 | 11110001001000000 |
| 1,234,567 | 100101101011010000111 |
| 12,345,678 | 101111000110000101001110 |
| 123,456,789 | 111010110111100110100010101 |
こんな 2進数を、 そのままで人に扱えと言っても、 とうてい無理です。
そこで、 16進数の出番です。
2進数を下位から 4桁毎に区切って、 4桁単位で 16進数に置きかえると、 次のようになります。
| 10進数 | 2進数 | 16進数 |
|---|---|---|
| 1 | 1 | 1 |
| 12 | 1100 | C |
| 123 | 111 1011 | 7B |
| 1,234 | 100 1101 0010 | 4D2 |
| 12,345 | 11 0000 0011 1001 | 3039 |
| 123,456 | 1 1110 0010 0100 0000 | 1E240 |
| 1,234,567 | 1 0010 1101 0110 1000 0111 | 12D687 |
| 12,345,678 | 1011 1100 0110 0001 0100 1110 | BC614E |
| 123,456,789 | 111 0101 1011 1100 1101 0001 0101 | 75BCD15 |
16進数にはアルファベットが混じったりするので、 慣れないうちは 「数」 とは思いにくいかも知れませんが、
0 と 1 ばかりがやたら並んでいる 2進数よりは、 遙かに扱い易いはずです。
(試しに、111 0101 1011 1100 1101 0001 0101 と 75BCD15 をノートに書き写してみてください。)
2進数を 16進数に置き換えるには、 次の表の関係を使って、 機械的に置き換えます。
これも最初は大変ですが、
16進数の有り難さが分かる頃には慣れます
。
| 2進数 | 10進数 | 16進数 |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | 10 | A |
| 1011 | 11 | B |
| 1100 | 12 | C |
| 1101 | 13 | D |
| 1110 | 14 | E |
| 1111 | 15 | F |
16進数は、文字コードでも使用されます。
ASCII では "A" という文字のコードは 41
(2進数では 0100 0001)、
JIS 漢字コード では "亜" という文字のコードは 3021
(2進数では 0011 0000 0010 0001) です。
これらは 2進数を 16進数で表しています。
ウェブページの文字や背景の色を指定するのにも
16進数が使われています
。
たとえばこのページの背景色は薄い黄色で、 殆どの文字は黒ですが、 それは
<body bgcolor="#FFFFF0" text="#000000">
として色が指定されているからです。
ここで "bgcolor" は背景色、 "text" は文字の色です。
色のデータそのものは "FFFFF0" と "000000" です。
これらは 6桁の 16進数で、 "FFFFF0" の場合、左の 2桁 "FF" は赤 (R) の、
中央の 2桁 "FF" は緑 (G) の、
左の 2桁 "F0" は青 (B) の明るさを表しています。
赤と緑は "FF" なので目一杯明るいのですが、青はこれらに比べてやや暗いので、
RGB 3色を混ぜ合わせると薄い黄色に見えます。
また、 "000000" は R、G、B いずれも "00" ですから、 文字の色は黒になります。
文字の色は一部分だけを変えることもできて、 "FF0000" だと 赤 に、
"00FF00" だと 緑 、
"0000FF" だと 青 になります。