戻る   16進数  (16進数 ・ 2進数の変換)



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

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

なぜなら、
10進数の 1 は、 2 進数でも 1 すが、
10進数の 12 は、 2 進数では 1100 で、
10進数の 123 は、 2 進数では 1111011
10進数の 1234 は、 2 進数では 10011010010 で、
10進数の 12345 は、 2 進数では 11000000111001 で、
10進数の 123456 は、 2 進数では 11110001001000000 です。
10進数の 123456789 はなんと、 2 進数では 111010110111100110100010101 になります。

これではやはり、 人には無理です。

10進数も桁が多くなると厄介ですが、 カンマで区切って見やすくするという手があります。
それは 2 進数も同じこと。  区切れば、 やや見やすくなります。

10進数2 進 数
1 1 
12 1100 
123 111 1011 
1,234 100 1101 0010 
12,345 11 0000 0011 1001 
123,456 1 1110 0010 0100 0000 
 123,456,789  111 0101 1011 1100 1101 0001 0101 





10進数は 3 桁 で区切りますが、 2進数は 4 桁で区切ると好都合です。
4 桁の 2 進数は 1 桁の 10 進数を表すのにとょうど良く、 1 バイト のちょうど半分、 扱いやすいのです。

4 桁の 2 進数は 10 進数の 0 〜 15 を表すことができますが、 10 進数には数字が 9 までしかないので、 10 以上の数字にはアルファベットの A〜F をあてます。 すると、 2 進数の 0000〜1111 は次の表のように、 すべて 1 桁の "数字" で表わせるようになります。
これが 16進数 です。

2進数   0000  0001  0010  0011  0100   0101  0110  0111  1000  1001   1010  1011  1100  1101  1110   1111 
 10進数  0123456789101112131415
16進数 0123456789ABCDEF


16進数を使うと、 先程の長々しかった2進数、 11101011011… なども、 すっきりと表すことができます。

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 
 123,456,789  111 0101 1011 1100 1101 0001 0101  75BCD15 





2 進数から 16 進数へ、 16 進数から 2 進数への変換は、 直感的・機械的に行います。
最初は戸惑いますが、 数字は 16 種類しかないので、 すぐに慣れます。

次のようなツールで、 ゲーム感覚で変換の練習をするのもいいでしょう。


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



"Start" ボタンをクリックすると、枠内に 4 桁の 2 進数が表示されます。
表示されたら、 かぐに対応する 16 進数のボタンをクリックして下さい。
正しければ次の 2 進数が表示されます。
10 題正解すれば終了し、 かかった時間が表示されます。
10 秒程度でできるようになれば、 免許皆伝。






しかしプログラムでも書こうというならともかく、 今日一般のコンピュータユーザが 2 進数や 16 進数の知識を必要とすることは、 まずありません。

あえて身近な 16 進数の使用例を上げれば、 ホームページを記述している HTML ファイルなどでしょうか。
HTML では背景や文字の色を 6 桁の 16 進数 で指定します。 背景色の指定には <body bgcolor="#abcdef"> などと書きますが、 この "abcdef" が 16 進数です (蛇足: "abcdef" は、 こんな色 "" です
しかし、 ホームページ作成ソフトを使えば色も簡単に設定できますから、 やはり 16 進数は必要ありません。
キャラクタコード も 16 進数で表現されますが、 文字データを直接コードで入力することはまずないので、 やはり必要ありません。

かつて、 コンピュータはとても難しい機械で、 これを扱うにはハードウェアやソフトウェアの専門的知識と共に、 2 進数や 16 進数などの知識が必須でした。
現在は OS やアプリケーションソフトなどの進歩もあって、 コンピュータは小学生でも使えるツールになっています。
コンピュータを使う上で、 2 進数 や 16 進数 の知識は必要ではなくなりました。

それはそれで素晴らしいことですが、 コンピュータをもう少し深く理解しようと思ったとき、 コンピュータは 2 進数で動いており、 人はこれを 16進数 に置き換えて扱うこと、 2 進数 と 10進数、 16進数との関係などを知っておかなくてはなりません。
そして、 そのような知識を持った上でコンピュータを扱うことは、 もっと素晴らしいことです。



情報処理概論 に戻る   目次 に戻る  戻る

*1 10 進数も、 本当は 4 桁で区切った方が分かりやすい。 123 京 4567 兆 8901 億 2345 万 6789 という数字を、 123,4567,8901,2345,6789 と書くのと、 1,234,567,890,123,456,789 と書くのを比べれば明らかです。
3 桁 で区切るのは 3桁きざみの英語表記 (thousand, million …) の影響でしょうが、 日本では 万、億、兆、京、垓… と、 4 桁きざみだからです。
*2 HTML の 色 については、「タグ (色の指定)」 に詳しい説明があります。

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