16進数について
25.デザインを考えるの配色では、スタイルシートで色を指定するのに、16進数を覚える必要があると述べました。ここでは、16進数について詳しく述べたいと思います。
進数とは
そもそも進数とは、その数字で桁が上がる数字のことを言います。10進数であれば、次の例のように、10になれば一桁上がります。
0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10
16進数であれば、16になれば一桁上がるわけですが、16進数で数字を数えていった場合、10を超えた時点で「10」と書いてしまったら、一桁上がったことになってしまうので、次の例のように、10は「a」、11は「b」とアルファベットで表現します。よって15は「f」で、16になったら「10」となります。
0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → a → b → c → d → e → f → 10
なぜ16進数なのか?
なぜ16進数なのかを話す前に、2進数について話さなければなりません。2進数は、上の条件に従うと、次の例に示すように、2になると一桁上がります。
0 → 1 → 10 → 11 → 100 → 101 → 110 → 111 → 1000 → 1001 → 1010
2進数をもっと詳しく考えていきたいと思います。2進数は2で一桁上がるので、「0」か「1」の世界です。この「0」か「1」の世界は、実はコンピュータの世界と同じであると、お気づきでしょうか?
そもそもコンピュータの内部では、簡単に言うと、電気が流れたときが「0」、電気が流れないときが「1」として表現されています。つまり、電気が「ON」か「OFF」の世界なのです。
では、2進数1桁で表現できる組み合わせは「0」と「1」ですから、2進数1桁で2通りの表現ができることがわかります。では、2桁ではどうでしょうか?。2桁では、「00」「01」「10」「11」の4通りです。数学的には、22=4通りと現せます。では、3桁では、23=8通り、4桁では24=16通りの表見ができることがわかります。
このような2進数の桁の単位のことを、コンピュータの世界では、ビットと言います。つまり、2進数1桁は1ビット、4桁では4ビットです。ちなみに、8ビットを1バイトと言い、HDDなどの記録容量の単位になっています。
話しを戻しまして、2進数4桁は、16通りの表現ができると書きましたが、16進数の1桁も16通りの表現ができます。つまり、2進数4桁が16進数1桁に相当し、2進数と16進数は親和性が高く、換算がしやすいのです。ということは、コンピュータの内部では、2進数で動いているわけですが、それを実際に記述するには桁数が多くなったり、0と1で見にくかったりするので、親和性の高い16進数で記述していこうと考えたのです。
2進数、10進数、16進数の相対関係
2進数 | 10進数 | 16進数 | 2進数 | 10進数 | 16進数 | 2進数 | 10進数 | 16進数 |
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 10000 | 16 | 10 | 100000 | 32 | 20 |
1 | 1 | 1 | 10001 | 17 | 11 | 100001 | 33 | 21 |
10 | 2 | 2 | 10010 | 18 | 12 | 100010 | 34 | 22 |
11 | 3 | 3 | 10011 | 19 | 13 | 100011 | 35 | 23 |
100 | 4 | 4 | 10100 | 20 | 14 | 100100 | 36 | 24 |
101 | 5 | 5 | 10101 | 21 | 15 | 100101 | 37 | 25 |
110 | 6 | 6 | 10110 | 22 | 16 | 100110 | 38 | 26 |
111 | 7 | 7 | 10111 | 23 | 17 | 100111 | 39 | 27 |
1000 | 8 | 8 | 11000 | 24 | 18 | 101000 | 40 | 28 |
1001 | 9 | 9 | 11001 | 25 | 19 | 101001 | 41 | 29 |
1010 | 10 | a | 11010 | 26 | 1a | 101010 | 42 | 2a |
1011 | 11 | b | 11011 | 27 | 1b | 101011 | 43 | 2b |
1100 | 12 | c | 11100 | 28 | 1c | 101100 | 44 | 2c |
1101 | 13 | d | 11101 | 29 | 1d | 101101 | 45 | 2d |
1110 | 14 | e | 11110 | 30 | 1e | 101110 | 46 | 2e |
1111 | 15 | f | 11111 | 31 | 1f | 101111 | 47 | 2f |
16進数を使った色の設定
Webページと、スタイルシートを結びつける方法については、「28.スタイルシートの制作と設置」で述べています。ここでは、25.デザインを考えるの「スタイルシートについて」で述べた設定例を使って、16進数を使っての色の設定について、丁寧に説明したいと思います。
● スタイルシートの設定例1
body {
background-color: #aabbcc;
color: #404040;
}
このスタイルシートの設定では、HTMLソースの中で、bodyタグで挟まれた領域では、background-color、つまり背景色は「#aabbcc」にしなさいという命令です。また、colorでは、文字の色を「#404040」にしなさいという命令です。
ここで出てくる「aabbcc」や「404040」は6桁の16進数で、この値をいろいろと変えることによって、色を変えることができます。では、この6桁の16進数が、どのような意味を持っているのでしょうか?。
光の三原色
光の三原色という言葉を聞いたことはございますでしょうか?。つまり、光の色は「赤」「緑」「青」の3つの光の組み合わせで表現できるということです。これらの色の英語読みの頭文字「Red」「Green」「Blue」を取って、「RGB」と表現することもあります。
例えば、Rを100%、Gを0%、Bを0%出す光源があったとすると、その光源が出す光は赤色に見え、Rを0%、Gを0%、Bを100%出す光源であれば、青に見えます。色は、組み合わせることもできるので、例えば、赤100%、緑100%、青0%であれば、黄色に見えます。そして、すべての色が100%であれば白になります。
このように、RGBのそれぞれの光を何%ずつ明るくするかによって、色が決まってきます。次の表に、代表的な色を載せておきますので、目安にして下さい。
R | G | B | 色 |
---|---|---|---|
100% | 0% | 0% | ■ 赤 |
0% | 100% | 0% | ■ 緑 |
0% | 0% | 100% | ■ 青 |
100% | 100% | 0% | ■ 黄 |
100% | 0% | 100% | ■ 紫 |
0% | 100% | 100% | ■ 水色 |
100% | 50% | 0% | ■ だいだい |
50% | 100% | 0% | ■ 黄緑 |
50% | 0% | 100% | ■ 青紫 |
0% | 0% | 0% | ■ 黒 |
25% | 25% | 25% | ■ 濃い灰色 |
50% | 50% | 50% | ■ 灰色 |
75% | 75% | 75% | ■ 薄い灰色 |
100% | 100% | 100% | □ 白 |
16進数で色を表現
実は、上のスタイルシートの設定例で示した3桁の16進数は、このRGBを表します。つまり、「#aabbcc」を例に取れば、「#」は16進数ですよという意味で、次の6桁を2桁ずつ切って、それぞれRGBに対応させています。ですので、最初の「aa」が赤R、次の「bb」が緑G、そして最後の「cc」が青Gという具合です。
16進数2桁では、一番大きな数字は「ff」です。
上の例では、赤「aa」、緑「bb」、青「cc」と設定されていますが、仮に、16進数2桁の最大値「ff」と設定されていたとします。
この「ff」が何%を表しているかと言いますと、「ff」が100%です。反対に、「00」が0%です。つまり、ffは10進数で255ですので、赤、緑、青それぞれ1色当たり256通りの色で表現できることになります。それが3色ですので、2563=1,677,216色の表現が可能であることになります。
「ff」は、2進数で16桁(16ビット)です。Windowsの画面のプロパティで、画面の色を設定できますが、その設定で「中(16ビット)」という設定にすると、画面を1,677,216色で表現するという設定になります。
話しを戻しまして、もうお気づきだと思いますが、仮にスタイルシートを次のように変更したとします。
● スタイルシートの設定例2
body {
background: #cccccc;
color: #ff0000;
}
そうすると、次の表示結果に示すように、bodyタグで挟まれた領域、つまりWebページ全体の背景色が灰色になり、文字の色が赤色になります。
● スタイルシートの設定例の表示結果
テスト表示
このように、色を16進数で表現されたものを、カラーコードと言います。
この表示結果は、背景色と文字色の関係として、とても見づらいと思います。このように、16進数6桁で色を設定して、見やすい配色をしていかなければなりません。次のページでは、文字色と背景色の組み合わせで、読みやすい組み合わせの考え方について、考えたいと思います。
16進数のアルファベット表記
16進数では、10から15を、aからfのアルファベットで表記しています。私は、たまたま小文字を使っていますが、大文字でも同じです。ただし、小文字と大文字を混在させるのではなく、どちらかで統一しておいた方が、良いと思います。
●小文字で指定
color: #aabbcc;
●大文字で指定
color: #AABBCC;
カラーコードとカラー名の関係
スタイルシートで色を指定する場合、上記のように16進数で指定する場合と、カラー名を直接入力する場合がございます。次の二つの例は、表示結果が同じになります。
●16進数で指定
color: #ff0000;
●カラー名で指定
color: red;
「カラーコードとカラー名の関係」で、カラー名とカラーコードの相対関係をまとめましたので、参考になればと思います。
- ← 前のページ 「25.Webサイトの構造とデザインを考える」
- 「27.文字色と背景色の組み合わせ」 次のページ →