10進数を16進数にする方法
理系な話をしてみる。
普段、自分達が使っている数字は10進数。
ご存知、10個目の数字ごとに桁が上がる。
2進数は1と0のみで表され、
0→1→10→11→100→101
という具合に数値が増えていく。
16進数は16個目の数字ごとに桁が上がり、
0→1→2→3→4→5→6→7→8→9→A→B→C→D→E→F→10→11
という具合に数値が増えていく。
16進数の11は10進数では17になる。
コンピュータの世界では10進数より2進数や16進数が用いられている。
この文字を表すのにも、コンピュータ内では2進数で情報がやり取りされているはずだ。
HPを作っているなら知っている人は多いと思うが、通常、HTMLで利用する場合の色の指定は16進数で行い、RGB(赤、緑、青)の3原色が基本となっている。
つまり、HPで色の表現をするためには、16進数での色の値を知っていなくてはいけないというわけ。
世の中には便利なものがあって、この色は16進数ではこのような数値ですよ、と教えてくれるHPがある。
それを使えば、HPを作る際にも好きな色を表現できるわけだ。
もしこれを自力でやるには?
Windowsには「ペイント」なるアプリケーションがある。
画像を編集しようとすると出てくるやつだ。
これでは色を10進数によるRGBの3原色の数値で表している。
最大の数値は255。
なぜかというと、16進数ではFF、2進数では11111111にあたる数値となり、色々と都合がいいのだ。
この数値を計算すれば、好きな色を16進数で表現できる。
他にも色々と手段はあるだろうが。
色に精通している人で、10進数の表示を見なくてもRGBの配分によってどんな色となるかが大体でも分かっていれば、「ペイント」は使わなくても大丈夫だ。
実際に、簡単な色だったら素人でもできて、
R:255 G:0 B:0
だったら純度100%の赤ということにある。
これは16進数に直すと、
R:FF G:0 B:0
になる。
10進数を16進数にするには、1回、2進数に直す。
10進数を2進数にするには、値を2で割ることを繰り返し、割り切れなくなるまでやり、余りの数値を見る。
例えば、10進数の 100 だとしたら、
2)100
2)50……0(余り)
2)25……0
2)12……1
2)6……0
2)3……0
1……1
これを1番下から見て、 1100100 これが2進数での 100 になる。
2進数を16進数に直すには、以下の表を使う。
\| 00 | 01 | 10 | 11
――――――――――――――――
00 | 0 | 1 | 2 | 3
――――――――――――――――
01 | 4 | 5 | 6 | 7
――――――――――――――――
10 | 8 | 9 | A | B
――――――――――――――――
11 | C | D | E | F
2進数を4桁と見て、上位2ビットと下位2ビットに別ける。
上の表では左が上位ビット、上が下位ビット。
くだけた言い方をすると、左の数値が先に来る2桁、上の数値が後に来る2桁ということだ。
先程の 1100100 はまず8桁にする。
01100100
これを4桁ずつに区切って、それぞれの値を計算する。
0110 0100
すると、 0110 は上の表に従って、 6 となる。
同様に、 0100 は上の表に従って、 4 となる。
以上から、10進数の 100 は16進数に直すと 64 となる。
これを、括弧を使って、
100(10)=64(16)=1100100(2)
と表す。
まぁ、非常にめんどくさい。
が、デジタルばかりに頼らず、たまには自力で色の計算をしてHPを作ってもいいかもしれない……って、ホントか?
そんな理系で勉強する話の一つでした。