bod*_*ser 5 javascript buffer byte integer node.js
我有一个包含8个字节的缓冲区对象.现在应将这八个字节解释为64位整数.
目前我使用以下算法:
var int = buff[0];
for (var i = 1; i < buff.length; i++) {
int += (buff[i] * Math.pow(2, 8 * i));
}
console.log(int);
Run Code Online (Sandbox Code Playgroud)
这有效,但我相信有更好的方法(也许使用Uint64Array).
不幸的是我无法找到Uint16Array如何帮助我.
问候
更新:
// puts two 32bit integers to one 64bit integer
var bufInt = (buf.readUInt32BE(0) << 8) + buf.readUInt32BE(4);
Run Code Online (Sandbox Code Playgroud)
Javascript不支持64位整数,因为本机数字类型是64位双精度,只给出53位整数范围.
您可以创建32位数字的数组(即Uint32Array),但如果存在64位版本的数组,则无法将值复制到独立变量中.
| 归档时间: |
|
| 查看次数: |
7022 次 |
| 最近记录: |