目次>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 | 出力
| OFF | OFF | OFF
| OFF | ON | OFF
| ON | OFF | OFF
| ON | ON | ON
|
|
|
|
右の表のように、全ての論理回路は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 | 0
| 0001 | 1
| 0010 | 2
| 0011 | 3
| 0100 | 4
| 0101 | 5
| 0110 | 6
| 0111 | 7
| 1000 | 8
| 1001 | 9
| 1010 | 10
| 1011 | 11
| 1100 | 12
| 1101 | 13
| 1110 | 14
| 1111 | 15
|
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 | 0 | 0
| 0001 | 1 | 1
| 0010 | 2 | 2
| 0011 | 3 | 3
| 0100 | 4 | 4
| 0101 | 5 | 5
| 0110 | 6 | 6
| 0111 | 7 | 7
| 1000 | 8 | 8
| 1001 | 9 | 9
| 1010 | 10 | A
| 1011 | 11 | B
| 1100 | 12 | C
| 1101 | 13 | D
| 1110 | 14 | E
| 1111 | 15 | F
|
先ほどの、10進数の8954を2進数と16進数で表すと、以下のようになります。
10進数 | | 8954
| 2進数 | | 10 | 0010 | 1111 | 1010
| 16進数 | | 2 | 2 | F | A
|
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進数だと言えます。
|