Home > Archives > 2006年05月06日

2006年05月06日

整数定数で除算する

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

Home > Archives > 2006年05月06日

Search
Feeds

Page Top