情報処理技術では「16進数」を使う場面が出てきます。
16進数はなぜ必要なのか、16進数から10進数への変換方法、用途について説明をします。
16進数はコンパクトで分かりやすい表現
コンピュータが扱う2進数は0と1のみを使って表現するため、桁数が多くなってしまいます。
例えば、10進数の2は2進数だと10、10進数の10は2進数だと1010というように、桁数が多い2進数は人間にとって読みにくいというデメリットがあります。
そこで分かりやすい表現ができるのが16進数です。
16進数は16で桁が上がる
下の10進数と16進数の対応表のとおり「16進数」は16で桁が上がります。(逆に16で桁が上がるから16進数なのです。)
16進数は1から9までは10進数と同じで、10をA、11をB、12をC、13をD、14をE、15をFと10~15をアルファベットで表現して1桁で表現できるようにしています。
そして、16になると10となり桁が1つ増えます。

16進数は2進数4桁分を、1桁で表現できる
16進数は、2進数の4桁(4ビット)を1桁で表現できるため、コンパクトに表現できます。
例えば、2進数「1010」は16進数で「A」と表されるので、表現できる情報量が増えます。
ちなみに、情報処理技術者試験では8Bitを例にした問題がよく出ます。

16進数⇔2進数変換
16進数からの変換、16進数への変換方法を解説します。
2進数から16進数への変換
2進数から16進数へ変換する手順は、次の通りです。
①2進数を右から4桁(Bit)単位で区切る
②区切った各ブロックについて10進数を求める。10~15だった場合はさきほどの表を使ったアルファベットで表現
では、2進数「1011 0110」を16進数へ変換してみます。
まずは、「1011 0110」を4桁(Bit)単位で区切ります。
次に4桁それぞれを変換します。
まず、左の4桁「1011」は10進数に変換すると11です。11は16進数だとBです。

一番右の4桁も同様に変換します。

2進数「1011 0110」は、16進数へ変換すると「B6」です。
16進数から2進数への変換
16進数から2進数へ変換する場合は、各桁を10進数に変換して、10~15の場合はアルファベットへ変換するだけでできます。
それでは16進数「B6」を2進数へ変換してみます。
一番左のBは10進数だと11なので、これを2進数へ変換すると1011です。

続いて右の6は10進数でも6なので、そのまま2進数に変換すると0110です。

16進数「B6」は10110110であることが求められました。
16進数から10進数への変換
16進数が小数だった場合の10進数への変換についても説明します。
16進数が小数だった場合も考え方は同じです。
例えば16進数のA2.4を10進数に変換してみます。
16進数の整数部分は整数1桁目から左に向かって16の1乗、16の2乗・・・と重みを計算してその桁の数字を掛けます。
小数点以下は16の-1乗、16の-2乗・・・と重みを計算してその桁の数字を掛けます。

最後に各桁の算出結果を足します。

16進数「A2.4」の10進数は162.25です。
16進数の用途
カラーコード
ホームページを作成する際などで背景色や文字の色などを指定するのにカラーコードというのを使う場合があります。
このカラーコードは赤、緑、青の3つの基本色を組み合わせて様々な色を作り出します。
各色の強さを0から255までの整数で表されます。
0はその色が全くないことを意味し、255は最大の強さを意味します。

上の図のようにカンマ等で区切りを入れれば見やすいのですが、コンピュータが扱う情報は2進数なのでそうもいきませんし、2進数で表現するとさらに見にくくなります。
そこで、これを16進数で表現して見やすくしています。

メモリアドレス
16進数はメモリアドレスなどコンピュータの内部表現でよく使用されます。
メモリのアドレスも2進数だとたくさんの桁数で表現することになってしまいますが、16進数であれば短く表現できるため便利です。

コメント