目次>7章 各種情報>(9)2進数と16進数(と10進数)

2進数と16進数(と10進数)

更新日2005.9.25

コンピュータを扱う上で避けて通れないのが、2進数16進数です。
ここでは、2進数および、16進数について10進数と対比する形で説明します。

(1)なぜ2進数が必要か
コンピュータは、膨大な数の論理回路が組み合わさってできています。
この論理回路は、入力信号がONかOFFかによって、ONまたはOFFが出力されます。

下の図は、論理回路の1つであるAND回路です。
AND回路は、入力信号が全てONの時、出力がONになります。入力信号が1つでもOFFであれば、出力はOFFになります。

AND回路この表は、2つの入力の組み合わせと
その時の出力を示しています。
  左の表の、OFFを0,ONを1に
置き換えた表です。
入力1入力2出力
OFFOFFOFF
OFFONOFF
ONOFFOFF
ONONON
入力1入力2出力
000
010
100
111

右の表のように、全ての論理回路は0と1の組み合わせで表現できます。
このように、0と1だけで表現できる数を2進数と呼びます。

(2)10進数と2進数

10進数

私たちが普段使用している数は10進数です。

10進数の1桁は、0〜9の範囲になっています。10になると桁上がりするため、1桁の最大値は9となります。
各桁は、1の位(100),10の位(101),100の位(102),1000の位(103)というように、10nで桁の重みが決まっています。

各桁の値と重みを掛け合わせた結果の合計と同じですので、以下の式と等価です。

(1×1000)+(9×100)+(5×10)+(4×1)=1954

2進数

2進数も考え方は10進数と同じです。以下の説明は、10進数の説明の10を2に置き換えただけですが、2進数の説明になります。

2進数の1桁は、0〜1の範囲になっています。2になると桁上がりするため、1桁の最大値は1となります。
各桁は、1の位(20),2の位(21),4の位(22),8の位(23)というように、2nで桁の重みが決まっています。

各桁の値と重みを掛け合わせた結果の合計と同じですので、以下の式で10進数に変換できます。

(1×8)+(0×4)+(1×2)+(0×1)=10(10進数)

4桁の2進数で表せる数を10進数と対比させると、以下の表のようになります。

2進数10進数
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
101010
101111
110012
110113
111014
111115

4桁の2進数で表せる数は、10進数で0から15までと言う事になります。

(3)2進数と16進数
では、10進数の「8954」を2進数で表して見ましょう。

10001011111010 各桁は右から、20,21,22,23,・・・となっています。
 10進数で8954である事を検証してみて下さい。

ですが、少し桁数が多いですね。
10進数では4桁で表せますが、2進数では14桁も必要になってしまいます。
これでは、書くのも大変ですし、読むのも厄介で分かりづらいですね。

そこで、2進数の4桁分をまとめて1桁で表そうと言うのが、16進数です。

ただし問題があります。
2進数の4桁は10進数で「0〜15」まで表せる事を上で説明しました。
数字だけでは1桁で表現できません。
そこで、10進数で2桁になる「10〜15」は、16進数では「A〜F」を使う事に決めました。

4桁の2進数で表せる数を10進数と16進数に対比すると、以下の表のようになります。

2進数10進数16進数
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
101010
101111
110012
110113
111014
111115

先ほどの、10進数の8954を2進数と16進数で表すと、以下のようになります。

10進数8954
2進数10001011111010
16進数

10進数の4桁を、2進数で表すと14桁も必要になりますが、16進数では4桁で表す事ができます。

16進数の説明を、2進数の時と同じように記述すると次のようになります。

16進数の1桁は、0〜15の範囲になっています。16になると桁上がりするため、1桁の最大値は15となります。
各桁は、1の位(160),16の位(161),256の位(162),4096の位(163)というように、16nで桁の重みが決まっています。

何となく分かって頂けましたか?

(4)おまけ(時計と60進数)
時計の分秒を考えて見ます。
秒の桁は、0〜59の範囲になっています。60になると桁上がりして1分になるため、秒の桁の最大値は59となります。
分の桁も同様に、0〜59の範囲になっています。60になると桁上がりして1時間になるため、分の桁の最大値は59となります。

今までの説明と同じですね。
時計の分・秒は60進数だと言えます。