- 530 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 16:54:12 ]
- 多少ステップ数がかかるように見えても、まだハードウエア除算は普通の命令20個分以上に重いからな
1/100 は1/10のルーチンを2度呼んでたな。 1/10は1/2/5 だから1ビットシフトしてから5で割る 65536/5=13107.2 だから13107を係数に使うと誤差は16bitの範囲で1 だけど1ビットシフトしてるから、15bitの範囲になってるから 最大誤差は0.5なんでOK という事で、最大誤差の0.5を足して x = x / 2 x = (13107*x+ 6553) / 2^16 を2度繰り返す
|

|