><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
それは内部表現と外部表現の混同な気がするなぁ
12.3と1.23って固定小数点の発想で見たら型が違うとも言えなくもないし、12.30と01.23にしたら『「10進で4桁でそのうち下の2桁は小数点以下」型』に型を揃えたと言えなくも無さそう?><;
オレンジ方式の理解、お約束の「おにぎりとおにぎりをくっつけたら大きいおにぎり1個じゃん! なんで2なの!?」って混乱が生じにくいであろうってメリットもある気がしてるし、「とにかく複数の数値表現等はまず揃える」って「型が違うものを型を考慮せず不用意に計算するとヤバい事になる」にも繋がるし、オレンジが「型システムは明示的でガチガチな方がいい!>< PythonやRubyみたいなのをは欠陥システム!><# 」って発想になった源流のひとつでもある気がしてる><
いま一番有力な説はこれ
あるいは、抽象的な「桁をずらす」という操作として見ていて(つまり桁を揃えて減算するという操作)、実装のことは特に考えてなかったかもしれない。
それの思い浮かべかたの時に、とにかくアホでもイメージできる省力タイプの発想をしてるのがオレンジ方式かも?><;
だからこそ https://mstdn.maud.io/@unarist/111015011011300162 みたいな話をしていたわけで
念のため書いておくとIEEE754のbinary64みたいな実数部と仮数部に分けた扱い方は知ってるし、さっきから再三思い浮かべているからね…?
小数点は、『「その数値表現のユニット」(※1)の桁の位置がその点の位置の左であるって示す記号』がオレンジの解釈><で、1とは「その数値表現や単位のユニット」であるみたいな解釈><(※1 正しい数学用語知らないのでオレンジ語><; 基数って言えばいいのかも?><;)
1は1.0000でもいいし00001でもいいし0001.0とかでもいい><仮想的な10進のメモリがあったとしてそれが5桁だったとして、12.3は00123で小数点の位置は右端からひとつ左って記憶することになるかも><
いやでもこれ、 https://mstdn.maud.io/@unarist/111014896869839168 を書いたときには別に仮想的な桁が下に伸びること想定してなかった気がするな?桁落ち上等、でも落ちた桁はどのみち結果に残らんからいやんやろとか思ってた気がする(実際には、1の1割引とか考えた時に🤔になる)
いま気づいたけど、なぜか らりおさんのtootがnere9に反映されるのに10分以上かかってて、昔の衛星中継というか時空を越えた議論みたいになってる?><;
オレンジはむしろその教え方をされたから、「桁とはなにか?」とか「小数点が桁をあわせる記号である」とか「1とはなにか?」とかと、あと16進とか2進とかも混乱せずに受け入れられたかも><
10で割ったものを引くと、小数による減算が発生しやすいから……
子供を小数概念と出逢わせないための涙ぐましい工夫を感じ取った
小数点と言うのは、複数の数値の桁の位置を揃えるための記号だよね?><小数点以下の桁数が違う二つの数値の計算する時には、小数点の位置で二つの数値の桁を揃えないといけない><桁を揃えると、二つの数値のうち小数点以下の桁数が少ない方の小さい方の桁には隙間が出来るけど、それの実態は0であるよね?><そこを「埋めなくてもいいじゃん?」ってなるかもだけど、計算機の場合はメモリのその部分を(未定義な数値じゃなく)0で埋める必要がある><
それはつまり無い0をあるように計算してるのと同じじゃん?><オレンジが言ってる方式はゼロサプレスの逆をやってる感じかも><
1割引を x - 0.1x と考えると小数点の扱いがどうこうもまあわかるけど、ビットシフトなら小数そもそも触っとらんがという気持ちになっている
さっきの「とりあえずn進数も全部揃えないと駄目じゃね?><」って発想がなんかオレンジだけの主張っぽくなって噛み合わなかったのも、オレンジの小数点の考え方のと同じかも?><
小数点を動かすというか、小数点を一旦忘れる為かも><計算機が小数点の位置は小数点の位置で別に処理するのと同じことを手計算でやってるだけのつもりだった><
思考の /dev/null