如何在JavaScript中从高32位和低32位部分创建64位整数时防止过大的值
How to guard against too-large values when creating a 64-bit integer from high and low 32-bit parts in JavaScript?
所以JavaScript的整数是内部64位的浮点值,因此可以精确地支持从-253到+253(-9,007,199,254,740,992到+9,007,199,254,740,992)。
你可以在我们非常有趣的线程中阅读所有关于它的内容:什么是JavaScript的Max Int?一个数字在不失去精度的情况下可以达到的最高整数值是多少?在我的项目中,我需要64位偏移量到非常大的文件。我可以通过组合高低对32位值来生成它们。我不需要完整的64位范围,所以JavaScript的限制是好的。
但是我不确定如何检查给定的一对32位值不会导致JavaScript范围之外的数字。
我如何核对这个?
我们只需要检查是否有高于53位的ON位,或者高于32位高位部分的21位。
只取高32位和&
与~((1 << 21) - 1)
(这将清除32位的所有低21位),以检查是否有任何位超过限制。如果结果为0,则数字将在限制范围内。
相关文章:
- 如何使用JavaScript模拟x86无符号32位整数乘法
- Javascript中的无符号32位整数
- 正在从LWIP服务器响应中检索16位整数
- Javascript是否为具有未定义值的变量分配32位内存
- firefox扩展,在32位和/或64位firefox(版本25.0.1)上使用js-cypes
- 将64位整数转换为json编码对象中的字符串的最佳实践
- 为什么 javascript 中的“btoa”编码适用于 20 位字符串而不是 20 位整数
- JavaScript 中的 32 位有符号整数数学
- 在节点中生成随机 32 位数字
- 错误:GM_setValue不支持的类型.支持的类型包括:字符串、布尔值和 32 位整数
- 如何在GLSL/WebGL中将一个32位整数打包为4.8位整数
- 将4个8位无符号整数打包为32位浮点值
- javascript中带有无符号32位整数的位移位/类型转换
- 将32位整数的非类型数组转换为UInt8Array的最有效方法
- 在javascript中将32位整数转换为4字节的数据
- javascript中可选长度的整数(不是32位)
- 32位-在javascript中将32位无符号小端序转换为整数
- 64位-有没有一种方法可以在Javascript中正确地乘以两个32位整数
- Javascript 32位整数乘法模拟
- 如何在JavaScript中从高32位和低32位部分创建64位整数时防止过大的值