如何在 Javascript 中模拟没有任何外部依赖的 32 位无符号整数?x >>> 0
使用或x | 0
不使用的技巧(对于乘法,它们似乎适用于加法/减法),并且双打在乘法过程中会失去精度。
例如,尝试将 2654435769 * 340573321 (mod 2^32) 相乘。结果应该是 1。
这个答案有乘法。加法/减法/除法呢?
这是wolfram alpha 的链接,展示了上面的等式。
32 位 unsigned int 适合 Javascript 的64 位浮点数——在执行加法、减法或除法时不应该有精度损失。只需掩码0xffffffff
以保持在 32 位整数内。乘法超出了合适的范围,但是您已经有了解决方案。