【发布时间】:2017-08-07 14:37:54
【问题描述】:
我需要将一个 8 字节的数组转换为双精度。这是我的起始数组:
[170, 85, 255, 63, 205, 171, 170, 85]
它应该转换为 -9.591053231630682E-105。
数组的每个元素可以是 0 到 256。
【问题讨论】:
标签: javascript arrays byte
我需要将一个 8 字节的数组转换为双精度。这是我的起始数组:
[170, 85, 255, 63, 205, 171, 170, 85]
它应该转换为 -9.591053231630682E-105。
数组的每个元素可以是 0 到 256。
【问题讨论】:
标签: javascript arrays byte
您可以改编 T.J. Crowder 的优秀 answer 并将 DataView#setUint8 用于给定字节。
var data = [170, 85, 255, 63, 205, 171, 170, 85];
// Create a buffer
var buf = new ArrayBuffer(8);
// Create a data view of it
var view = new DataView(buf);
// set bytes
data.forEach(function (b, i) {
view.setUint8(i, b);
});
// Read the bits as a float
var num = view.getFloat64(0);
// Done
console.log(num);
【讨论】: