NodeJS 读取缓冲区二进制到浮点数
NodeJS Reading Buffer Binary To Float
我有一个包含自定义字节信息的大型 DAT 文件,
我的任务是将解决方案转换为 JavaScript。
就是让解决方案更加单语言化,转为无服务器云计算。
但是,我 运行 遇到了转换此测试数据的问题。
这些值应该 return 一个浮点数,
但我似乎无法正确转换数字。
切片缓冲区输出为<Buffer 40 82 e2 31 d6 d7 2e 8d>
、
这应该是 return 604.274335557087
但实际上 returns 4.090111255645752
.
我现在已经束手无策了。
有什么想法吗?
fs.readFile(file, (err, data) => {
...
// Read other buffer slice() values fine until this step.
// Like: readInt8(), readIntBE(0, 4), readBigUInt64BE(0, 8)
...
let FloatNumber = data.slice(start, end).readFloatBE();
console.log('FloatNumber', FloatNumber);
...
}
const buf = Buffer.from([0x40, 0x82, 0xe2, 0x31, 0xd6, 0xd7, 0x2e, 0x8d]);
console.log( buf.readDoubleBE(0) );
// Prints: 604.274335557087
我有一个包含自定义字节信息的大型 DAT 文件,
我的任务是将解决方案转换为 JavaScript。
就是让解决方案更加单语言化,转为无服务器云计算。
但是,我 运行 遇到了转换此测试数据的问题。
这些值应该 return 一个浮点数,
但我似乎无法正确转换数字。
切片缓冲区输出为<Buffer 40 82 e2 31 d6 d7 2e 8d>
、
这应该是 return 604.274335557087
但实际上 returns 4.090111255645752
.
我现在已经束手无策了。
有什么想法吗?
fs.readFile(file, (err, data) => {
...
// Read other buffer slice() values fine until this step.
// Like: readInt8(), readIntBE(0, 4), readBigUInt64BE(0, 8)
...
let FloatNumber = data.slice(start, end).readFloatBE();
console.log('FloatNumber', FloatNumber);
...
}
const buf = Buffer.from([0x40, 0x82, 0xe2, 0x31, 0xd6, 0xd7, 0x2e, 0x8d]);
console.log( buf.readDoubleBE(0) );
// Prints: 604.274335557087