いつものようにヘロヘロと仕事をしていると、突如担当編集の松尾氏からMessengerで「これに対するちゃんとした回答を書けるのは大原さんだなということで、また歴史物をお願いしたく」という依頼が飛び込んできた。
いやちゃんとした回答も何も、上のTreeで出題されたSEライダー氏が正解を出されているわけですが、歴史的経緯というか、ここに至るまでの話というのが長い訳で、その辺りを少し説明してみたいと思う。
ちなみに出題に少しだけ違和感がある(なぜ10bitがキリがいいと思うのか?)のは、筆者もこっち側の人間だからかもしれない。
そもそも非コンピュータ業界の方からすれば、2進数がベースという辺りから違和感を覚えるのではないかと思う。実際、世界最初の計算機(≠電子計算機)とされる「バベッジの階差機関」(写真1)にしても、世界最初の電子計算機(※1)であるENIACにしても、内部では10進数で演算を行っていた。
※1: 後に「世界最初のコンピュータ」を巡る裁判が、Sperry RandとHoneywellの2社間で巻き起こる。Sperry RandはENIACの関連特許を押さえており、Honeywellはこの特許が無効である理由としてABCの存在をアピール。最終的にはENIACの特許が、提出期限を過ぎてから申請されていたことが発覚し、ENIAC関連特許は無効となった。ただこれをもってして、ABCが世界最初のコンピュータだと認定されたわけでもない。
人間が普段10進数で演算をしており、これを助ける機械として設計された訳だから、内部も10進数で作ろうとするのは、設計すること自体はごく自然な流れである。ただし、この10進をベースに実装するのは、かなり大変な作業であった。
端的に言えば、一桁毎に10個(0〜9)の状態があることを記憶しておかなければいけないためだ。演算を実装する際にもこの制約がそのまま当てはまる。この結果として、階差機関初号機(写真1)は16桁で6階の階差を計算できるものだったが、31桁で7階の階差を計算できる2号機(写真2)はこのサイズに膨れ上がっている。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR