小学生に「片手で数えられる最大の数は?」と聞くと、答えは「5」か「10」です。
指を広げておいて、親指から折っていて「1,2,3,4,5」。
折った指を小指から立てていけば「6,7,8,9,10」。
これが限界と思ってしまいますが、もっと数えられます。
それが、コンピューターの世界の二進数の考え方です。
1,2,3・・・と増えていき、10になったら桁が上がるのが十進数です。
普段使ってる数ですね。
二進数は2で桁が上がります。
なので、使う数は0と1だけ。
0,1の次は桁が上がって10、その次の数字は11、で次は桁が上がって100です。
十進数と二進数を対応付けると次のようになります。
十進数 | 0 | 1 | 2 | 3 | 4 | … |
---|---|---|---|---|---|---|
二進数 | 0 | 1 | 10 | 11 | 100 | … |
人間にはややこしく感じますが、コンピューターにとっては二進数のほうが便利なのです。
コンピューターが判定できるのは電気が流れてるか、流れてないかの2つの状態。
この2つの状態で、いろいろな意味を表わさなければならないのです。
このため数字も二進数で表しているのです。
で、最初の問いに戻ります。
指で数を数えるときも出来るのは2種類の状態ですよね。
指が立っているか、折れているか。
二進数と同じです。
すべての指を折りたたんだ状態を0とします。
そこで、親指だけ立てると1。
次はひとつ繰り上がるので、親指を折って人差し指だけ立てた状態が2。親指も人差し指も立てると3となります。このペースだと10以上の数が数えられそうですよね。
指を折っている状態を「0」、指を立ててる状態を「1」とすると…。
10進数 | 小指 | 薬指 | 中指 | 人差し指 | 親指 |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 1 | 1 |
4 | 0 | 0 | 1 | 0 | 0 |
5 | 0 | 0 | 1 | 0 | 1 |
6 | 0 | 0 | 1 | 1 | 0 |
… | … | … | … | … | … |
31 | 1 | 1 | 1 | 1 | 1 |
これが二進数の世界です。