3.7 Ts 位运算

昨晚 写了一个测试的代码
不知道为什么

我定义了一个 number => 0xFFF FFFF FFFF‬

我就想把这个算 >> 左移 16 位 接正常的理解应该得到 0xFFF FFFF

可是得出来的结果不是 是我机器问题还是什么

有没有兄弟 可以在 自己的机器 测试下 这个左移 操作

无符号右移用这个>>>,试了一下结论应该是js支持的位运算最多就32位,超过按32位处理,0xFFF FFFF FFFF已经44位了

这个我想到了,可是我昨晚输出了 number 的最大值 看了,够呀
头痛

还有就是 这个是左移,数值 是减小的,没道理这样

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators#二进制位运算符

1赞

可为什么 number 定义可以是 64位的

没事知道问题不在我这里就样,昨晚搞到我好纠结以为自己哪里搞错了,现在明白不是我这里的问题就可以了,谢谢

是否支持 64 位一方面取决于数据类型(Number 是浮点的,无法安全表示 64 位长度的整数),另一方面取决于 CPU 架构是 32 位还是 64 位。