固定小数点 15.16 の数値を乗算および除算するアルゴリズムを探しています。
私はすでに足し算と引き算をしています。それらは簡単でした-単純な32ビットの加算と減算。乗算と除算を使用して、多くの三角関数と指数/対数関数を追加することもできます。そして、私のライブラリには逆数関数があり、それを使用して除算を実装できるため、乗算だけで処理できると思いますa * (1/b) = a / b
。ただし、基数を無視するため、32 ビットの乗算は機能しません。
私は 16 ビットのマイクロコントローラーで作業しているので、プロセッサーで約 4 サイクルかかる 32 ビット以上の乗算は避けたいと考えています。重要ではありませんが、浮動小数点演算を置き換えようとしているだけです。
結果をシフトまたは回転する必要があると聞いたことがありますが、これがどのように役立つか、具体的にどのようにシフトするかはわかりません。任意の提案や助けをいただければ幸いです!