JavaScript:读取 8 字节到 64 位整数

标签 javascript node.js integer buffer byte

我有一个包含八个字节的缓冲区对象。这八个字节现在应该被解释为 64 位整数。

目前我使用以下算法:

var int = buff[0];

for (var i = 1; i < buff.length; i++) {
    int += (buff[i] * Math.pow(2, 8 * i));
}

console.log(int);

这可行,但我相信有更好的方法(也许使用 Uint64Array)。

不幸的是,我找不到 Uint16Array 如何帮助我。

问候

更新:

// puts two 32bit integers to one 64bit integer
var bufInt = (buf.readUInt32BE(0) << 8) + buf.readUInt32BE(4);

最佳答案

Javascript 不支持 64 位整数,因为 native 数字类型是 64 位 double ,仅提供 53 位整数范围。

您可以创建 32 位数字的数组(即 Uint32Array),但如果有 64 位版本的数组,则无法将其值复制到独立变量中。

关于JavaScript:读取 8 字节到 64 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200071/

相关文章:

java - 为什么 Integer.parseInt ("11111111111111111111111111111111",2) 在 java 中抛出异常?

Javascript setCustomValidity 不适用于 Chrome 版本 65

javascript - 如何查看 openAI (node js) createModeration 响应 "flagged"是否为 true

javascript - 包括意外。元素必须是模型、关联或对象

node.js - 更改管道响应的内容处置

javascript - 使 sails.js 水线大小写敏感

java - 将整数转换为 int

javascript - js中从末尾算起第三次出现的字符串进行分割

javascript - NVD3 noData 文本颜色变化

java - 给定 int 的字符串表示,检查溢出