- 2006-05-06 (Sat) 15:09
- プログラミング
固定された整数で除算するプログラムをシフトと乗算と加減算で書けと.一つのやり方はハードウェアでやっているシフトと加減算を交互にやる方法.遅いけど.もう一つは,十進数で 5 で割る代わりに 2 を掛けてから桁をずらすのと同じ原理を使う方法.すなわち,k での除算のかわりに (2^d + c) / k を掛けて d ビットシフトする. ここで c は綺麗に割り切れる数でない場合に生じる誤差を下位桁に押し込めるための定数.なにやら 3 程度であれば簡単なようだが,7 になると誤差処理が面倒になるらしい(加減算が別に必要になる).
- Newer: ことはじめ