計算機の計算方法
写真はうちのネコ。
基本俺の事は避けて生きている(小さな頃に机に乗るたびにしかってたから)のに
突然膝の上に来たと思ったら爆睡。ネコ万歳。
本題は計算機ってどうやって計算してんの?
ということ。
今まで生きてきて一度も不思議に思ったことは無かったし、
計算機ってなんで計算できるんだ!って予備知識無しに思える人がいたら
結構すごいと思うのだ。
どうして凄いと思うのかをちょっと説明しよう。
お題:
何回入力されるのかわからない。
最初に入力された数字が最上位の桁。
最後に入力された数字が最下位の桁。
という条件で入力された数字を表現できる数式を答えよ。
例:
1回目:1を入力
2回目:2を入力
3回目:3を入力
結果:123
というのを数式で表現する。
まず普段の感覚で123という数字を先頭から解釈してみる。
3桁の数字の先頭の1という数字は
「1*100=100」
3桁の数字の2桁目の2という数字は
「2*10=20」
3桁の数字の3桁目の3という数字は
「3=3」
だから合計すると
「1*100+2*10+3」
これは桁数に依存した方法。
普通は先頭から100の位、とか10の位って読み解く。
123は「ひゃくにじゅーさん」であって「さんにじゅーひゃく」じゃない。
じゃあ、桁数がわからなかったらどうする?
1が何の位かわからなかったら分解することが出来ない。
そこでだ、例を使って数式を書いてみると
1回目は1だから式にすると
「1」
2回目は2だから式にすると
「1*10+2」
3回目は3だから式にすると
「(1*10+2)*10+3」
ここで入力が途切れるので
「(1*10+2)*10+3=123」
この方式で行くと
4回目に4が入力されたら
「((1*10+2)*10+3)*10+4」
という風に繰り返していけば電卓のような入力が実現できる。
そもそもは
「1234」っていう文字を与えられたときに桁数を求めることなく数字に変換する
というプログラムを組んでいて思い至ったんだけどね。