[大原雄介,ITmedia]
いつものようにヘロヘロと仕事をしていると、突如担当編集の松尾氏からMessengerで「これに対するちゃんとした回答を書けるのは大原さんだなということで、また歴史物をお願いしたく」という依頼が飛び込んできた。
”
@Sys_Rider
面談で未経験なのに経歴盛り盛り詐称を洗い出す究極の質問を編み出した。
「1byteは何故8bitなのか?」
「何故キリがいい10bitじゃなかったのか?」
これ即答出来る人に未経験はまずいない。
そしてしっかり基礎から学んでると即答出来る。
https://twitter.com/Sys_Rider/status/1488275108762320898
”
いやちゃんとした回答も何も、上のTreeで出題されたSEライダー氏が正解を出されているわけですが、歴史的経緯というか、ここに至るまでの話というのが長い訳で、その辺りを少し説明してみたいと思う。
”
@Sys_Rider
2008年にISOなどで1Byte=8bitに定義された由来ですが、
アルファベットの大文字小文字と数字を表現するには64パターン(6bit)必要。
そして記号を含めると1bit足して7bit必要。
最後にパリティビットを足して8bitになりました。
https://twitter.com/Sys_Rider/status/1488482065184333824
”
ちなみに出題に少しだけ違和感がある(なぜ10bitがキリがいいと思うのか?)のは、筆者もこっち側の人間だからかもしれない。
回答の前に、その根底にある2進数採用の経緯
そもそも非コンピュータ業界の方からすれば、2進数がベースという辺りから違和感を覚えるのではないかと思う。実際、世界最初の計算機(≠電子計算機)とされる「バベッジの階差機関」(写真1)にしても、世界最初の電子計算機(>>>1)であるENIACにしても、内部では10進数で演算を行っていた。
photo
写真1:ロンドンのScience Museumに展示されていた階差機関初号機の模型。筆者撮影
https://image.itmedia.co.jp/news/articles/2202/03/l_koya_1bytePhoto01.jpg
>>>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)はこのサイズに膨れ上がっている。
photo
写真2:同じく展示されていた2号機の模型。人の背よりもデカい。総重量は5tらしい
https://image.itmedia.co.jp/news/articles/2202/03/l_koya_1bytePhoto02.jpg
https://www.itmedia.co.jp/news/spv/2202/03/news151_0.html
フォン・ノイマンの草稿
次のページへ
https://www.itmedia.co.jp/news/articles/2202/03/news151_2.html
https://twitter.com/5chan_nel (5ch newer account)
続きを読む
Source: 理系にゅーす
