Table of Contents
コンピュータの内部では、私たちが普段使っている 10進数 とは違った規則の数が使われています。
主に使われているのが 2進数 と 16進数 です。
今回は、10進数の規則について改めて確認した後、これらの特別な数の規則について紹介します。
10進数とは
普段使っている数字を思い浮かべて見ると、次のような規則になっています。
$$0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, \cdots$$
さて、ここで注目すべきことは、10進数には、ひとつの桁を表すために使える数字が10種類あるということです。
具体的には 0 から 9 までの10個の数字を使っています。
$$0, 1, 2, 3, 4, 5, 6, 7, 8, 9$$
そして、ひとつの桁だけで 10 を表せる数字は存在しません。そのため、桁を増やして 10 を表現します。
したがって、10進数は「10になると繰り上がる数」と言えます。
これは当たり前のことだと思われるかもしれませんが、他の ○進数 も全てこの原則は共通しています。
(○には数字が入ります)
つまり、○進数について以下の2つの規則が成り立ちます。
- ひとつの桁に使える数字は○個
- ○を表すためには桁を増やす必要がある
また、繰り上がりのタイミングについて考えてみると、10進数の場合、次のような数で繰り上がりが発生します。
$$10, 100, 1000, 10000, 100000, 1000000, \cdots$$
これにも規則があります。
10進数 | 10 | 100 | 1000 | 10000 | 100000 | 1000000 |
---|---|---|---|---|---|---|
べき乗 | $10^{1}$ | $10^{2}$ | $10^{3}$ | $10^{4}$ | $10^{5}$ | $10^{6}$ |
つまり、べき乗となるときに繰り上がりが発生します。この規則も加えると、○進数について以下の3つの規則が成り立ちます。
- ひとつの桁に使える数字は○個
- ○を表すためには桁を増やす必要がある
- ○進数の繰り上がりは○のべき乗の数のときに起こる
では、この規則から2進数について考えてみましょう。
2進数とは
先ほどの規則の ◯ の部分に 2 を当てはめてみると、2進数は次の規則を持つ数と言えます。
- ひとつの桁に使える数字は2個(0と1)
- 2を表すためには桁を増やす必要がある
- 2進数の繰り上がりは2のべき乗の数のときに起こる
したがって、2進数で使える数は 0 と 1 だけであり、2を表すためには桁を増やさなくてはいけません。
この規則に従って、10までの数字を2進数で表現すると、以下のようになります。
$$0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010$$
10進数との対応は以下の通りです。
10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
2進数 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 |
2 を表すためには、繰り上がりが必要なので、10 となります。
繰り上がりのタイミングは、2のべき乗の時なので、以下のようになります。
10進数 | 2 | 4 | 8 | 16 | 32 |
---|---|---|---|---|---|
2進数 | 10 | 100 | 1000 | 10000 | 100000 | べき乗 | $2^{1}$ = 2 | $2^{2}$ = 4 | $2^{3}$ = 8 | $2^{4}$ = 16 | $2^{5}$ = 32 |
なぜコンピュータでは2進数が使われるのか
コンピュータで2進数が多用される理由は、コンピュータの原理はスイッチと同じだからです。
スイッチは ON と OFF の2つの状態を表します。これが2進数の元です。
ひとつのスイッチでは、ON または OFF の2つの状態しか表すことができません。
しかし、2つのスイッチを組み合わせると、以下のように4つの状態を表すことができます。
スイッチ1 | OFF | OFF | ON | ON |
---|---|---|---|---|
スイッチ2 | OFF | ON | OFF | ON |
スイッチの ON を 1、スイッチの OFF を 0 として考えると、これは2進数そのものと言えます。
スイッチ1 | 0 | 0 | 1 | 1 |
---|---|---|---|---|
スイッチ2 | 0 | 1 | 0 | 1 |
同様に、スイッチを増やしていけば、それらの状態の組み合わせで様々な数を表すことができます。
スイッチの個数 | 表せる数 |
---|---|
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
… | … |
N | $2^{N}$ |
16進数とは
2進数の時と同じように、先ほどの規則の ◯ の部分に 16 を当てはめてみると、16進数は次の規則を持つ数と言えます。
- ひとつの桁に使える数字は16個(0〜15)
- 16を表すためには桁を増やす必要がある
- 16進数の繰り上がりは16のべき乗の数のときに起こる
16進数の場合、ひとつの桁に16個の数字を使います。しかし、10進数で使っているアラビア数字だけでは16個に足りないので、10以上の数にはアルファベットを使います。
従って、15までの数字を16進数で表現すると、以下のようになります。
$$0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f$$
10進数との対応は以下の通りです。
10進数 | … | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16進数 | … | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 |
10進数における16で繰り上がりが起こります。
繰り上がりのタイミングは、16のべき乗の時なので、以下のようになります。
10進数 | 16 | 256 | 4096 | 65536 |
---|---|---|---|---|
16進数 | 1 | 10 | 100 | 1000 | べき乗 | $16^{1}$ = 16 | $16^{2}$ = 256 | $16^{3}$ = 4096 | $16^{4}$ = 65536 |
16進数は、コンピュータが読み取る機械語や、Webページのカラーコードの表現などに使用されます。