戻る   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,789111010110111100110100010101

こんな 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,789111 0101 1011 1100 1101 0001 010175BCD15

16進数にはアルファベットが混じったりするので、 慣れないうちは 「数」 とは思いにくいかも知れませんが、 0 と 1 ばかりがやたら並んでいる 2進数よりは、 遙かに扱い易いはずです。
(試しに、111 0101 1011 1100 1101 0001 0101 と 75BCD15 をノートに書き写してみてください。)




2進数を 16進数に置き換えるには、 次の表の関係を使って、 機械的に置き換えます。
最初は大変ですがすぐに慣れて、 16進数の有り難さが身にしみるようになります。 「2進数 → 16進数 変換」 の練習用 Java アプレットが 16進数 のページにありますから、 試してください。


 2進数  10進数  16進数 
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
101010
101111
110012
110113
111014
111115



16進数は、文字コードにも使われています。
ASCII では "A" という文字のコードは 41 (2進数では 0100 0001)JIS 漢字コード では "亜" という文字のコードは 3021 (2進数では 0011 0000 0010 0001) です。
この 413021 は 16進数です。

ウェブページの文字や背景の色を指定しているのも 16進数です
たとえばこのページの背景色は薄い黄色ですが、 それは bgcolor="#FFFFF0" と背景色が指定されているからです ("bgcolor" は back ground color の略です)
色のデータそのものは "FFFFF0" で、 これは 6桁の 16進数です。
"FFFFF0" の場合、 左の 2桁 "FF" は赤 (R) の、 中央の 2桁 "FF" は緑 (G) の、 左の 2桁 "F0" は青 (B) の明るさを表しています。 10進数だとそれぞれ 255、 255、 240 なので赤と緑は目一杯明るく、 青はこれらに比べてやや暗いので、 RGB 3色を混ぜ合わせると薄い黄色に見えます。




関連事項: なぜ2進数なのか  2進数  16進数 


情報処理概論 に戻る   用語解説 に戻る   目次 に戻る   戻る

*1 基数については、 2進数 に説明があります。
*2 タグ(色の指定) のページに詳しい説明があります。

自由利用マーク
update: 2012.09.19  address