9

Javascript で外部依存関係なしに 32 ビットの符号なし整数をエミュレートするにはどうすればよいですか? x >>> 0orを使用したトリックはx | 0機能せず (乗算の場合、加算/減算で機能するようです)、倍精度は乗算中に精度が失われます。

たとえば、2654435769 * 340573321 (mod 2^32) を乗算してみてください。結果は 1 になるはずです。

この答えには掛け算があります。足し算・引き算・割り算は?

上記の式を示す wolfram alpha へのリンクを次に示します。

4

1 に答える 1

3

32 ビットの unsigned int は、Javascript の64 ビット float に収まります。加算、減算、または除算を実行するときに精度が失われることはありません。でマスクするだけ0xffffffffで、32 ビット整数内に留まります。乗算は適合する範囲を超えていますが、その解決策は既にあります。

于 2012-07-28T21:45:21.160 に答える