32 x 32 ビットの符号なし乗算を 24 ビット dsp に移植したい (これは線形合同ジェネレーターであるため、切り捨てることはできません。また、現在の LCG を 24 ビットのものに置き換えたくありません。 )。利用可能なデータ型は 24 ビットと 48 ビットの整数です。
最後の 32 LSB だけが必要です。通常の方法よりも少ない乗算、マスク、シフトでこれを実装するためのハックを知っていますか?
行は次のようになります。
//val is an int(32 bit)
val = (1664525 * val) + 1013904223;