js中按位运算会出现精度丢失的问题吗?

查到的资料是说根据IEEE 754标准,js中number使用64位固定长度来表示,也就是标准的double双精度浮点数。但是我在MDN查阅位运算符时发现有这样的描述所有的按位操作符的操作数都会被转成补码(two's complement)形式的有符号32位整数。

从64变为32,精度不就丢失了吗?谁能帮忙解答下,谢谢。

阅读 1.1k
1 个回答

如果你拿超过32【有符号的算31】的来运算是的,但一般的业务场景很少有这么多位的,至少我目前还没有遇过,而且实际编码中也很少用到位运算,我更多时候是用来做类型转换和向下取整的,比如如果需转换成int变量|0——这样可以保证结果是数值,不会出现NaN

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏