【问题标题】:Converting 32-bit unsigned little endian to integer in javascript在javascript中将32位无符号小端转换为整数
【发布时间】:2016-11-30 08:23:15
【问题描述】:

我有一个 4 字节的数组。 32 位无符号小端序。

[ 123, 1, 0, 0]

我需要帮助将其转换为整数。我在下面尝试但没有运气:

let arr = [ 123, 1, 0, 0 ];
let uint = new Uint32Array(arr);
console.log('INT :', uint);

【问题讨论】:

  • 8 个字节?其他 4 个在哪里?

标签: javascript 32-bit


【解决方案1】:

有两种方式:

如果您知道您的浏览器也是小端(现在几乎总是如此),那么您可以这样做:

const bytes = new Uint8Array([123, 1, 0, 0]);
const uint = new Uint32Array(bytes.buffer)[0];
console.log(uint);

如果您认为您的浏览器可能在大端环境中运行并且您需要进行适当的端转换,那么您可以这样做:

const bytes = new Uint8Array([123, 1, 0, 0]);
const dv = new DataView(bytes.buffer);
const uint = dv.getUint32(0, /* little endian data */ true);
console.log(uint);

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多