肝心のところが書いてなかった
3/2倍で発散しない説明が抜けていた。
慣れは怖いもので、以前に解説していたから、すっかりわかっているものと思ってしまった。
無限小数と同じで幅があると考える。
デジタル表記では小数部は0しか無く、隙間が発生する。
アナログでは1は
0.9999999の幅をもっている。
そのため連続性を維持できる。
これは反転しないと見えない。
ビットの反転とは、連続性の可視化である。
最終的には符合でしかないから反転しなくても説明はできるが、イメージはしにくい。
0の数字に0と0,999999の2つの意味があるからだ。だから、反転することで
1は空=0
0はフル=0.999999
という意味だけに統一できる。つまり反転でなければ理解できない理由がここにある。
+1
と
1の3倍による+2
でたくみに上位ビットをつど反転させながら計算していたのだ。
まるでオセロである。
一気に反転させないから数字に複数の意がが混在してしまうため、説明がややこしくなる。
さらに3倍は無駄に手数を増やすだけ。まさにハノイの塔。
われわれは、数字を使うとき、繰り上がりという概念に縛られている。しかし、エンジニアにとってコントロールビットにはそれぞれ意味があり、繰り上がりはできない。
2回信号を入れからといって、隣の信号を送ることはないのである。
反転することで、無限上位から1が供給されつづけることもわかる。
反転しないと、各ビットで、フル状態の繰り上がりが生じて面倒になってしまう。
反転した結果、これは1だとわかる。
(not)1=・・・111110.111111・・・(2)=・・・111111(2)
無限小数によって終了判定に繰り下がりを考えなくて済むわけである