高津@ドーガです。

固定小数点のプログラムを普段書いてますが、

・値域がわかっている場合は、固定小数点を使う。
 「小数点がどこにあるか」はプログラム中で完全に固定

・「小数点がどこにあるか」を別の変数で管理するぐらいなら、浮動小数点を使う。

ですね。

例えば、画像処理とかだと、0〜1 を 15ビットの下駄を履かせて 0〜32768にする
とか。(実際には、0〜255を、128.502倍してますが。)

これだと、掛け算が、32bitの普通の掛け算+右シフトだけでできるので楽です。

精度を出そうと、下駄を30ビットにしたこともありましたけど、掛け算ルーチンが
すごい手間がかかって、最近のCPUだと下手をすると double で演算した方が速い
ですね。アセンブラで頑張ればもうちょっと速くなるんでしょうけど、そこまで
やるのも面倒なので、今はそういう時はもっぱら浮動小数点です。

PROJECT TEAM DoGA 高津正道                            taka2@doga.jp
                                                   TBD00456@nifty.ne.jp
                     PROJECT TEAM DoGAのホームページ → http://doga.jp/
11月19日(金) 今日のマーフィーの法則   [優秀な部下の第1法則]
ボスよりも自分が有能であることをボスに悟られてはならない。