DS930810のブログ

筆者は自然や自然現象に関心が相当あるので自然に関する記事(天文, 地理, 生物)を書いていきたいと思います。かつては1日2記事を適当な時間に投稿していましたが今のところは午後6時に1記事投稿する形にしています。

指を使えば1023まで数えられる そして重要な2進法

今回は二進法について書いていきたいと思います。

普段数を数えるときは十進法を用いていますがある世界では二進法が用いられています。

 

 

1. 二進法で1,023まで数える

指を使えば10まで数えられますがこれはあくまで十進法を単純に使った場合であり、二進法を用いれば1,023まで数えることが出来ます。

二進法なので十進法よりも多く数えられることに疑問を持つかもしれないが二進法の良い所は用いる数字が0か1しか無いことであり、指をたたんだ時を0、指を伸ばした時を1と置き、更に右手の小指を伸ばした時は1、薬指を伸ばした時は2、中指の時は4...というようにすれば左手の小指が512となり、計1,023まで数えることが出来ます。

 

では、ここで例を挙げていきたいと思います。

指をそのまま書くとかなり困難なので色分けした図を用いたいと思います。

赤い時は1黒い時は0と置きますと...

f:id:DS930810:20171112213008j:plain

307, 及び665を指を用いて表すとこのようになり、ここで二進法視点で考えると

307は100,110,011と9桁の数値で表され、

665は1,010,011,001と10桁の数値で表されます。

 

このように二進法を用いると指を10本用いるだけで1,000以上の数まで数えることが出来ますがこの数え方は極めて不便であり、まず使えないといっても過言ではありません。

ここまで書くと二進法は役に立たない!

と思いますが実はある世界では二進法が中心に用いられています。

 

 

 

2. コンピューター界の二進法

そのある世界とはコンピュータ界のことであり、コンピューターでは二進法が用いられています。

よく情報量でメガバイトやギガバイトが用いられていますがここで出てくるバイト(byte)でまさに二進法が用いられており、1バイトは8ビット(bit)に相当します。

1ビットは二進法の1桁を意味しており、2通りの情報量を表すことが出来ます。

まあ、単純に言えば1か0かですが...

そして、1バイトは8ビットなので1バイトでは2進法で言う8桁、つまり256通りの情報量を表せます。

f:id:DS930810:20171112214043j:plain

このことより両手の情報量は10ビット、つまり1.25バイトに相当することが分かります。

 

よくコンピューターには31, 63, 127, 255などの「2の階乗-1」の数値が出てきますがこの理由は上記のように二進法を用いているからであり、

例えば255まで表せる情報量は1バイトであり、0から数えると255まで数えることが出来ます。

 

 

 

3. メガバイトのメガは普通のメガとは違う

重さの単位にキログラムが用いられますがこのキロとは1,000倍を表す接尾辞であり、

キロの上にはメガ、ギガ、テラ、ペタ、エクサ、ゼタ、ヨタがあり、この接尾辞は情報量に対してよく使われます。

一般的にこれらの接尾辞は1,000倍ごとに用いられますが情報量の世界では2進法のため話が変わります。

2進法だと2の階乗ごとに桁数が増えていくため2から数えると

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048...

のようになり、この中で1,000に近い数値は1,024であるので接尾辞が1段階上がる、つまりキロからメガ、メガからギガになる時は情報量が1,024倍になります。

つまり、ギガバイト=1024メガバイトのようになり、一般的な接尾辞とは若干ではあるが誤差が生じます。

 

一応コンピューターで表示されないところではギガバイト=1000メガバイトのように十進法で表されていますがコンピューターの内部データ上ではちゃんと1,024倍されています。

 

このことから分かると思いますがキロバイトの時点でも情報量は莫大であり、

2バイトの情報量は1バイトの情報量の256倍もの情報量となるため、

キロバイトともなると2^1032通りと言う想像もつかない情報量を扱っていることとなります。

更にメガになると2^1024倍され、ギガになるとメガの2^1024倍されるため、情報量はとてつもなく大きい量になります。

 

ここまで書くと何を言っているかが分からないので簡単な例を挙げていきたいと思います。

例えば0~255までの数値を10個並べるとします。

23, 53, 213, 32, 157, 173, 245, 17, 3, 43

と書いたときの情報量はどれほどになるかと言うと

数値1つは0~255の256通りで表されることとなるため情報量は1バイトとなり、

10個並べると10バイトとなります。

 

ここで、数値の通りは何通りあるかと言うと

256^10通り、およそ1.2𥝱通りもあることとなり、一見大した通りが無さそうでも実際には莫大な通りがあります。

f:id:DS930810:20171112222714j:plain

ここでの四角(=1ビット)は80個もあり、合計2^80 = 256^10 ≒ 1.2 × 10^24 (通り)も

表すことが出来ます。

 

このように一見不便そうな二進法もコンピューター界では中心となっており、二進法の重要性が分かります。