“模拟” JavaScript中的32位整数溢出

智商安德烈亚斯

JavaScript可以很好地处理以下数学:

var result = (20000000 * 48271) % 0x7FFFFFFF;

但是在某些编程语言中,第一次int*int乘法会导致值太大而无法容纳标准的32位整数。是否有任何方法可以在JavaScript中“模拟”,并查看如果乘法导致整数溢出,结果将是什么?

智商安德烈亚斯

通过“滥用” JavaScript中可用的按位运算符可以模拟32位整数(因为它们只能返回该范围内的整数)。

转换为带符号的32位整数

x = (a * b) | 0;

转换为无符号的32位整数

x = (a * b) >>> 0;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章