戻る 16進数 (hexadecimal)


コンピュータの中では、2進数が使用されています。 0と1の2種類の数字だけで数値を表します。

数字は2種類しかないので、コンピュータにとっては扱いやすくていいのですが、 そのままで人が扱うには無理があります。
なぜなら、

10進数の 10 は、2進数では 1010  ですが、
10進数の 100 は、2進数では 1100100  で、
10進数の 1000 は、2進数では 1111101000  で、
10進数の 10000 は、2進数では 10011100010000  で、
10進数の 100000 は、2進数では 11000011010100000  で、
10進数の 1000000 は、2進数では 11110100001001000000  です。

これでは、人には到底理解できません。

しかし、10進数もカンマで区切れば見やすくなるように、2進数も区切れば、少し見やすくなります。


10進数2 進 数
10 1010 
100 110 0100 
1,000 11 1110 1000 
10,000 10 0111 0001 0000 
100,000 1 1000 0110 1010 0000 
 1,000,000  1111 0100 0010 0100 0000 




10進数は 3 桁で区切りますが、 2進数は 4 桁で区切ると便利です。 4 桁の 2進数は 10進数の 0 〜 15 を表すことができる、すなわち、 1 桁の 10進数の数値を全て含む最小の桁数だからです。

しかし、数字は 0〜9 の 10種類しかありませんから、10 以上の数を表す数字として A〜F をあてることにすると、 2 進数の 0000〜1111 は次の表のように1桁の "数字" で表わせるようになります。 これが 16進数 です。

2進数 00000001001000110100010101100111 10001001101010111100110111101111
10進数 0123456789101112131415
16進数 0123456789ABCDEF

16進数を使うと、先の例の2進数も、簡潔に表すことができます。

10進数2 進 数16進数
10 1010 A 
100 110 0100 64 
1,000 11 1110 1000 3E8 
10,000 10 0111 0001 0000 2710 
100,000 1 1000 0110 1010 0000 186A0 
 1,000,000  1111 0100 0010 0100 0000  F4240 


しかし、プログラムを作るのでもない限り、今日コンピュータを使用するに当たって、 2進数や 16進数を直接扱う必要はほとんどありません。

あえて16進数の使用例をさがせば、ホームページを記述している HTML ファイルなどがあります。
HTML では背景や文字の表示色を6桁の 16進数 で指定しています。
HTML ファイル の6 行目に <BODY bgcolor="#ffcccc"> という例がありますが、 この、"ffcccc" が 16進数です。
しかし、ホームページ作成ソフトを使えばこのような設定も簡単にできますから、 16進数を知らなくても、やはり困ることはありません。
また、キャラクタコード も 16進数で表現されていますが、 文字を直接コードで入力することも、まずありません。

最近のコンピュータは、これを使う上では 2進数 や 16進数 の知識は必要ありませんが、 コンピュータは2進数しか扱えないこと、 これを人は 16進数 に置き換えて扱うこと、2進数 と 16進数 の関係などを理解しておくことは、 決して無駄ではありません。






2進数から 16進数への変換、16進数から 2進数への変換は、 計算よりも、 直感的に行ったほうが早いようです。
しばしば 16進数を使うようになれば、 すぐに慣れます。

次のようなツールで、ゲーム感覚で練習するのもいいかもしれません。



2進数 → 16進数 変換の練習



Start ボタンをクリックすると、枠内に4桁の2進数が表示されます。
対応する 16進数のボタンをクリックして下さい。
正しければ次の問題が表示されます。
10題正解すれば終了し、かかった時間が表示されます。





情報処理概論 に戻る   講義資料 に戻る   戻る

*1 10進数も 4桁で区切った方が断然分かりやすいのですが。 言うまでもなく、日本語の万、億、兆、京、垓… は 4桁きざみだからです。


Java applet 圧縮アーカイブファイル    自由利用マーク
update: 2007.06.04  address