Re: 固定小数点復権を
高津@ドーガです。
固定小数点のプログラムを普段書いてますが、
・値域がわかっている場合は、固定小数点を使う。
「小数点がどこにあるか」はプログラム中で完全に固定
・「小数点がどこにあるか」を別の変数で管理するぐらいなら、浮動小数点を使う。
ですね。
例えば、画像処理とかだと、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法則]
ボスよりも自分が有能であることをボスに悟られてはならない。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735