2009年04月09日


2進数(科学)

 システムとか情報処理をやっている人であれば、2進数というのは今更の存在だろう。ふだん日常で使っている数字は10進数で、0から9まで数えたら次は10になる。2進数は0の次は1、1の次は10、10の次は11、11の次は100と桁が増えていく数字だ。2進数の1101は10進数では13になる。
 なぜシステムとか情報処理でこんな数字を使うのかといえば、計算機をつくるのに便利だからだ。例えば電球がついていたら○、電球が消えていたら●として

○○●○ = 1101 = 13

とすれば4つの電球で13という数字を表現できる。電球が四つあれば0000から1111まで、つまり0から15までの数字を扱えるのだ。この電球1つを1ビットと呼んで、8ビットあれば0から255まで数えることができる。たとえば今はやりのファミコンを例にすると、8ビット機のファミコンは1回の処理で255までの数字を扱うことができるのだ。もちろん処理を組み合わせればもっと大きな数字も扱えるが、当然時間がかかることになる。これが16ビット機になれば0から65535までの数字が扱えるから、当社比256倍の性能アップという訳だ。

 話を2進数に戻すが、数を扱うなら計算だってしたくなる。ここで論理演算という考え方が生まれるが、読んで字のごとく計算を論理で行うのだ。例えばANDという論理はAとBが同じだったら0、AとBが違ったら1を返すのだが、これを利用して2進数で足し算ができる。

A ○●●○ = 9
B ●●○● = 2

をANDした結果Yは

Y ○●○○ = 11 になる。

ちなみにAとBが両方とも○だった場合はひとつ上の桁に繰上げ処理をする。こういう電気回路を作れば、AとBに数字を入れたらYに答えが出る足し算装置ができる訳だ。他にも引き算や掛け算、割り算といった四則演算をするための論理があるが、基本はこうした論理回路で処理をしている。

 とはいえ扱う数字が大きくなれば、こんな計算にいちいち電球を並べる訳にもいかないだろう。電気を通すとONになったりOFFになったりするもので、小さいものを探せば計算機を小さくできる。真空管やトランジスタを使っていた頃は床を埋め尽くしていたコンピュータが、半導体を使った集積回路を使う今では指先に乗るサイズになっている。データの記録も紙テープやカードに2進数の穴を開けていたものが、今やフロッピーディスクですら昔の遺物になってしまった。

 これこそ技術の進歩というものだが、ところで科特隊では紙テープに打ち出された穴を見て怪獣がどこに現れたかを解析してしまう。ものすごく前時代的な方法に見えて、半導体が指先に乗る時代になってもやはり紙テープを読み取る能力に羨望を覚えなくもない。
>他の戯れ言を聞く