有没有办法在里面看到一个数字'的64位浮点IEEE754表示
Is there any way to see a number in it's 64 bit float IEEE754 representation
Javascript根据规范将所有数字存储为双精度64位格式的IEEE 754值:
数字类型正好有18437736874454810627(即264−253+3)值,表示双精度64位格式IEEE 754IEEE二进制浮点标准中规定的值算术
有没有办法在Javascript中看到这种形式的数字?
您可以使用类型化数组来检查数字的原始字节。创建一个带有一个元素的Float64Array
,然后创建一个具有相同缓冲区的Uint8Array
。然后,您可以将浮点数组的第一个元素设置为您的数字,并通过Uint8Array
检查字节。当然,你必须对数字的各个部分进行一些移位和组合,但这并不难。
没有像提取指数这样的内置功能。
根据@Pointy的建议,我实现了以下函数,以在其64位浮点IEEE754表示中获取一个数字:
function to64bitFloat(number) {
var f = new Float64Array(1);
f[0] = number;
var view = new Uint8Array(f.buffer);
var i, result = "";
for (i = view.length - 1; i >= 0; i--) {
var bits = view[i].toString(2);
if (bits.length < 8) {
bits = new Array(8 - bits.length).fill('0').join("") + bits;
}
result += bits;
}
return result;
}
console.log(to64bitFloat(12)); // 0100000000101000000000000000000000000000000000000000000000000000
console.log(to64bitFloat(-12)); // 1100000000101000000000000000000000000000000000000000000000000000
您可以使用Basenumber.js将数字转换为其IEEE754表示形式:
let x = Base(326.9);
let y = Base(-326.9);
// specify double precision (64)
let a = x.toIEEE754(64);
let b = y.toIEEE754(64);
console.log(a);
console.log(b);
// You can join them in an unique string this way
console.log(Object.values(a).join(""));
console.log(Object.values(b).join(""));
<script src='https://cdn.jsdelivr.net/gh/AlexSp3/Basenumber.js@main/BaseNumber.min.js'></script>
相关文章:
- 如何从二进制int中获取百分比,每个位表示x%
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- firefox扩展,在32位和/或64位firefox(版本25.0.1)上使用js-cypes
- 将64位整数转换为json编码对象中的字符串的最佳实践
- 对象不支持此属性或方法 Rails Windows 64 位
- jQuery 错误 SCRIPT5002:IE9 64 位中预期的函数
- Javascript 十进制到二进制 - 64 位
- 如何使用 JavaScript 知道安装的 JVM 是 32 位还是 64 位
- 检测 Chrome 浏览器安装版本是否为 64 位
- 使用 javascript/css 将 64 位字符串转换为 jpeg
- breezejs :在 ODATA URL 中传递 64 位过滤器
- JavaScript-将基于64位数据的字符串转换为图像
- window.open无法在IE 9、64位操作系统中工作
- 无法使用节点预处理程序重建串行端口:404状态代码下载64位nw.lib
- 在Ubuntu 64位上安装js yaml NPM包依赖程序时出现问题
- JavaScript:64位对数字的影响
- Javascript/PHP将64位整数解释为浮点
- 使用电子打包器在Cent OS 64位上构建电子应用程序失败
- 更新Windows 7 64位的node.js
- NPM找不到模块,win 7/64位