0 から 1 の間の実数を実装するには、通常は ANSI float または double を使用します。ただし、0 から 1 の間の固定精度数 (1 を法とする 10 進数) は、32 ビット整数または 16 ビット ワードとして効率的に実装できます。これらは、通常の整数/ワードのように加算されますが、「間違った方法」で乗算されます。つまり、X 回乗算すると、 Y、製品の上位ビットを保持します。これは、0.X と 0.Y を乗算することと同じです。ここで、X のすべてのビットは小数点の後ろにあります。同様に、-1 と 1 の間の符号付き数値も、この方法で 1 ビット余分にシフトすることで実装できます。
固定精度の mod 1 または mod 2 を C で (特に MMX または SSE を使用して) どのように実装しますか? この表現は、ユニタリ行列の効率的な表現、数値集約的な物理シミュレーションに役立つと思います。より多くの MMX/SSE が整数の数量を持つようになりますが、PMULHW へのより高いレベルのアクセスが必要です。