コンピュータの中では、
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進数
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
|
---|
16進数
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
|
---|
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 の 色 については、「タグ (色の指定)」
に詳しい説明があります。

update: 2014.06.02