0と1で表現される世界

プログラム
コンピュータの世界は0と1の2つの値で表現されています。プログラムを書いているから、その命令で動いているんじゃないの?と思ってしまうかもしれませんが、みなさんが各プログラムも、どの言語で書こうが最終的には0と1の数字の羅列に置き換えられてコンピュータで実行されます。このような感じですね。

 

では、なぜ0と1なのか?
それはコンピュータはなんかデジタル的なものといいながら、最終的には実在する物理現象を使って最終的には複雑な計算を実現しています。

例えば、電気信号
電源が流れている状態が1、流れていない状態を0として状態が表現できます。

銀行カード、ハードディスク、テープレコーダーなど磁気を使うものであれば
N極とS極の状態で0と1を表現

DVDならば
特定の光を当てた時に反射する状態と反射しない状態を作り上げて、この反射のありなしで0と1を表現します。昔、漫画こち亀の両さんがDVDの円盤をみて何の映画かあてていたというありえない回がありましたが(笑)

このように物理現象をもとにした場合、0と1というON/OFF、ありなしの状態を表現するのが作り的に簡単になり適切なんですね。

そしてもう一つの理由が、計算するための回路を作りやすいからです。
0と1の場合、1桁どうしを足し算する計算回路は次の4パターンです。

0+0=0
0+1=1
1+0=1
1+1=0

もしこれが0から9までの状態で計算しようとした場合は
0+0=0/0+1=1/・・・・・/9+9=8(1桁目)と100個も回路を作る必要があり大変です。このため、コンピュータでは0と1で表現しているのです。

 

この0と1で表現される考え方を2進数といいます。一方、われわれがつかっている、0~9までの数値(12、81、95といった表現の仕方)は10進数です。ちなみにコンピュータの世界では表現のしやすさから16進数というものまであり、これは0~9に加えA~Fのアルファベットを使います。参考までに以下にいくつかの数字を2進数、16進数であらわした表を示します。

参考:2進数、8進数、10進数、16進数の計算サイト

2進数、8進数、10進数、16進数相互変換ツール
2進数、8進数、10進数、16進数を相互変換する使&#...

 

といった形で今回はコンピュータでは0と1の2値で表現され、2進数というものが使われるというお話でした。今後、プログラミングを含めたコンピュータの勉強をすすめていく中で2進数は重要なキーワードとなりますよ。

コメント

タイトルとURLをコピーしました