マイナスや3.14は、どう入れるの?
ここまでは0、1、2のような正の整数だけを入れてきましたね。でも氷点下5度、残高のマイナス、3.14のようなものは、どうやって0と1で入れるのでしょう。かしこい方法が二つあります。
いちばん前のスイッチを符号に使います
負の数を入れる最初のアイデアは単純です。
スイッチを一つ取って、
符号せんように使うんです。
いちばん前が0なら正、
1なら負。
のこりのスイッチで大きさを表します。
いちばん前が符号、のこりが大きさ。
いちばん前だけ変えれば、
+5が-5になります。
かんたんですね。
でもこの方法には、
少し不便なところがあります。
計算するとき符号を べつに気にしないといけないし、
しかも0が二つできます。
プラス0とマイナス0です。
数を一周まわして負の数を作ります
そこでコンピュータが じっさいに使う方法は、
もう少しかしこいんです。
車の走行距離計を思い出してください。
9999から1すすむと、
0000にもどりますね。
ぎゃくに0から1をひくと、
いちばん終わりの数にうつります。
これを使って、
終わりの数たちを負の数に することにしたんです。
同じビットでも、一周まわすと負の数になります。
この方法を ほすうと呼びます。
いいところは、
負の数をたしても、
ふつうにたすだけで、
たし算回路がちゃんと正しい答えを出すことです。
ひき算をべつに作らなくていい。
だからコンピュータはこの方法を えらびました。
小数点はただよいます
こんどは3.14のような小数です。
秘密は名前に入っています。
小数点が固定ではなく、
ただよっているんです。
同じ数字でも、
小数点をどこに打つかで、
大きな数も小さな数も表せます。
314という数字で、
点を動かしてみてください。
点を動かすと、同じ数字がちがう値になります。
点が左にいくと小さくなり、
右にいくと大きくなります。
こうして小数点がただようので、
とても大きな数から、
とても小さな数まで、
同じやり方で入れられます。
だから名前が ふどう小数点、
ただよう小数点です。
符号、大きさ、けた で分けます
では ただよう小数点を、
どうやって0と1で入れるのか。
スイッチを三つの部分に分けます。
前は符号(さっき学んだあれ)、
まん中は小数点の位置(どれだけ大きいか)、
のこりは じっさいの数です。
スイッチを三つの区画に分けて入れます。
この三つのかけらがあれば、
小数点がただよう どんな数でも、
0と1で書けます。
科学で使う表記と、
同じアイデアです。
3.14を0.314かける10、
こう分けるように。
コンピュータは0.1を正確に知らないことがあります
おもしろい事実ひとつで
しめくくります。
コンピュータに0.1たす0.2をさせると、
ちょうど0.3にならないことがあります。
ほんの少しずれるんです。
なぜなら0.1は、
0と1では
きっちり入れられないからです。
わたしたちの目には0.3ですが、コンピュータの中には ごく小さな誤差がのこります。
わたしたちが1わる3を、
0.3333...と かぎりなく書くように、
0.1も0と1の世界では、
かぎりなくつづく数です。
だから どこかで切らなければならず、
そこで ごく小さな誤差が生まれます。
コンピュータが まちがっているのではなく、
0と1で小数を入れるやり方の限界です。