Javascript中的无符号32位整数

use*_*401 9 javascript integer unsigned-integer

如何在Javascript中模拟没有任何外部依赖性的32位无标记整数?使用x >>> 0x | 0不工作的技巧(对于乘法,它们似乎适用于加法/减法),并且在乘法期间双精度会丢失精度.

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

这个答案有倍增.加/减/除法怎么样?

这里是 wolfram alpha 的链接,展示了上面的等式.

eph*_*ent 3

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