如何在 Javascript 中模拟 32 位无符号整数而不需要任何外部依赖项?技巧与 x >>> 0 或者 x | 0 不起作用(对于乘法,它们似乎适用于加法/减法),并且双精度数在乘法过程中会失去精度。

例如,尝试乘以 2654435769 * 340573321 (mod 2^32)。结果应该是 1。

这个答案 有乘法。加法/减法/除法怎么样?

这是一个链接 到 Wolfram alpha,提出上面的方程。

有帮助吗?

解决方案

32 位无符号 int 适合 Javascript 64 位浮点数 -- 执行加法、减法或除法时不应损失精度。只需面膜 0xffffffff 保持在 32 位整数以内。乘法超出了适合的范围,但你已经有一个解决方案了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top