ふつう数を数えるときには10進数を使うけれど、コンピューターの世界では2進数とか16進数とかも使います。
ふと思ったけど、「○進数」の「○」が整数じゃなかったらどんな感じになるんかな?
たとえば2.5進数。
1(2.5進数)=1(10進数)
2(2.5進数)=2(10進数)
ここまでは10進数といっしょ。
10(2.5進数)=2.5(10進数)
11(2.5進数)=3.5(10進数)
12(2.5進数)=4.5(10進数)
20(2.5進数)=5(10進数)
21(2.5進数)=6(10進数)
22(2.5進数)=7(10進数)
当たり前やけど、桁上がりだけ気にしとけばいいわけやね。1増えても1足すだけ。
100(2.5進数)=6.25(10進数)
101(2.5進数)=7.25(10進数)
102(2.5進数)=8.25(10進数)
110(2.5進数)=8.75(10進数)
111(2.5進数)=9.75(10進数)
112(2.5進数)=10.75(10進数)
あれ?22(2.5進数)の方が100(2.5進数)より大きい!?
ということは、たとえば6.5(10進数)は、21(2.5進数)と22(2.5進数)の間にもあるし、100(2.5進数)と101(2.5進数)の間にもあるので、2.5進数にすると2通りの書き方ができるってことかな。
進数が2.5であっても、ある桁の位置に書ける数字は2までしかなくて力不足なので、整数のちょっと手前の数字が小数で表現しきれないという現象が起こるんじゃないかと予想してました。
つまり、
0.2222・・・(2.5進数)
こんなふうに小数点以下に精一杯の大きさの数字を並べても、次の整数(この場合1)に近づききれずにぽっかりすき間が
できてしまうんじゃないかと。
(10進数の場合、0.9999・・・は極限値が1になってすき間はゼロ。)
でも実際に方程式で計算してみるとその逆で、
0.2222・・・(2.5進数)=1.3333・・・(10進数)
1を超えてしまうんやね。
うーん、なんか感覚的に理解しがたい><
整数進数では絶対起こらない逆転が、なんで非整数進数でなら起こるんやろ??なんか計算まちがってる?
・・・1時間後・・・
わかったー!!いやあ、すっきり。ある意味凡ミスでした。
逆転現象の起こるしくみ?について書きました。
コメント