2進数のお話
なんか周囲で何人かがブログを始めたみたいなので私も始めることにしました。
記念すべき初回は、2進数についてお話しようと思います。
え?脈略がなさすぎるって?
いいから聞けよ。
みなさんは、2進数をご存知でしょうか?
「名前だけは聞いたことがある」「中学(高校)で勉強したことがある」「仕事で毎日触れている」「昨日の夕食に出てきた」
様々な人がいると思います。
今からするお話は、特別専門的な話ではありません。
「2進数って言葉だけはよく聞くなぁ」くらいの人が読むと面白いかもしれませんが、2進数についてよく知ってる人にとっては当たり前の話です。
それでも良ければ、お付き合いくださいませ。
2進数のお話をする前に、まず進数とは何なのかをお話します。
進数とは、数値を表記するための記法(正確には進法と言うが、説明を簡単にするために進数と呼ぶ)のことです。
たとえば、我々が普段使っているのは、10進数です。
10進数では、数値を「0 1 2 3 4 5 6 7 8 9」の10個の文字で表現します。
では、2進数はどうでしょうか。
「0 1」
2進数はこのふたつの文字だけで数値を表現します。非常にクールですね。
一般的に、N個の文字で表現される数値の記法のことをN進数(正確にはN進法)と呼びます。
他にも、PCに詳しい人なら、16進数も聞いたことがあるかもしれません。
16進数では、0~9までの10個の記号に加えて、アルファベットのABCDEFの6つの文字を数値の表現に使用します。
最近はほとんどみなくなりましたが、かつては8進数なんてのもよく見られました。
ちなみに、ポケモンの個体値におけるVとは、32進数における31を指しています。
個体値の最大値が31なので、32進数に直してVと呼んでいるのです(同様に、Uは30を指します)。
続いて、2進数ではどのように数字を表現するのかをお話します。
まずは、次の10進数をご覧ください。
1145141919810
地球上で最も美しいことでよく知られるこの数字ですが、この数字を2進数で表記すると次のようになります。
10000101010011111110001110000000001000010
桁数がドンと増えましたね。この2進数を見て、一瞬で「美しい数字だ」と思える人はバーチャルホモに違いありませんほぼ居ないでしょう。
さて、ここまでの話を聞くと、あなたは考えるでしょう
「2進数って扱いづらいわ」「10進数だけでええやん」
仰る通りです。
はい、ぶっちゃけ我々が自然界で生きていく上では、10進数だけで事足ります。
では次に、なぜ2進数が必要なのかについて、お話しましょう。
結論から述べますと、2進数はコンピュータが数値を扱う時に用います。
我々の手指が10本だから、10進数が我々にとって最も都合がよいのと同様に、コンピュータには電気が流れているか流れていないかの2つの状態があるので、2進数で数値を表現する方が都合がよいのです。
みなさんご存じの通り、コンピュータはゼロとイチだけですべての情報を処理しています。
あなたが読んでいるこの文章もゼロとイチからできてますし、あなたがこのページを開いているブラウザもゼロとイチで表現された機械語で動いています。
たった2つの文字だけで本当にそんなことができるのかとお思いかもしれませんが、このようなことをするために、コンピュータは何億、何十億というゼロとイチを読み続け、計算し続けています。
少し実感が湧くように、具体的にどれくらいの量のゼロとイチが処理されているのかを考えてみましょう。
以下の画像をご覧下さい。
(出典:http://college2ch.blomaga.jp/articles/197288.html)
宇宙で最も美しいことで有名なこの画像ですが、この画像のサイズを見てみましょう。
4092バイトとなっていますね。
1バイトは、0か1が8個並んだものです。
1バイトの例:「00000000」「10101010」「10110110」「01101010」
つまり、先ほどの画像は、コンピュータ上では0と1が4092×8=32736個並んで表現されているということです。
これが大体どれくらいの量なのかというと、
これくらいです。
0と1が交互に3200個並んだ画像を10枚並べました。
このように、コンピュータ上に存在するすべてのデータはゼロとイチからできています。
2進数は、コンピュータ上で大活躍している、素晴らしい進数なのです。
さて、ここまで、2進数のお話を気の向くままに適当に述べてきましたが、如何だったでしょうか?
初めてのブログで、いきなり何の話をしてんだよって感じですが、まぁいいでしょう。
次回も、(気が向けば)2進数にまつわる話をもう少し続けて書こうかと思っています。
それではまた。