【问题标题】:Javascript, convert array of numbers into doubleJavascript,将数字数组转换为双精度
【发布时间】:2017-08-07 14:37:54
【问题描述】:

我需要将一个 8 字节的数组转换为双精度。这是我的起始数组:

[170, 85, 255, 63, 205, 171, 170, 85]

它应该转换为 -9.591053231630682E-105。

数组的每个元素可以是 0 到 256。

【问题讨论】:

    标签: javascript arrays byte


    【解决方案1】:

    您可以改编 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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-07
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 2014-07-22
      • 2014-11-02
      相关资源
      最近更新 更多