日本プログラミング物語

プログラミング技術を磨きながら愛国心を養うサイト

コンピューターと二進数

10進数のおさらい

日頃なにげなく使っている10進数を考えてみましょう。
たとえば、「3776」という数字を調べてみると、
3776 = 3000 + 700 + 70 + 6
= 3×1000 + 7×100 + 7×10 + 6×1
= 3×103 + 7×102 + 7×101 + 6×100
と書き表すことができます。

103 102 101 100
数字 3 7 7 6

10進数では、位取りの0(ゼロ)と1,2,3,4,5,6,7,8,9の全10種類の数字を並べるだけで、どのような数字でも表すことができます。

このように、n種類の文字と位取りの概念を用いて数を表す方法を「基数法」と呼びます。
10進数は基数を10としたときの数の表し方です。
同じ数でも基数が変われば、表記も変わります(後述)。

ちなみに、なぜ十進数が広く使われているのかというと、人間の指が10本で数えやすいからです。
10進数が発明される以前から人間は数を数えてきたので、いつの間にか10単位でものを数えることが慣習となっていったのかもしれません。

二進数とは

二進数は、2を基数とした基数法で0と1を使って数を表します。
最下位の桁から順に、20(2の0乗)、21(2の1乗)、22(2の2乗)、・・・と続いていきます。
各桁の10進表記での意味は次の表のとおりです。

2進数 27 26 25 24 23 22 21 20
10進数 128 64 32 16 8 4 2 1

この表にしたがって10110101という二進数を10進数で表してみましょう。
※二進数であることを明確にするときは、10110101(2)と書きます。

2進数 27 26 25 24 23 22 21 20
10進数 128 64 32 16 8 4 2 1
求める数 1 0 1 1 0 1 0 1

「求める数」の1の部分だけを足すと、
128 + 32 + 16 + 4 + 1 = 181

つまり、10110101(2)を10進数で書き表せば、181になります。
言い返せば、10進数の181を二進数に直せば、10110101になります。


コンピューターの仕組み