将 32 位无符号小字节序转换为 javascript 中的整数

Converting 32-bit unsigned little endian to integer in javascript

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

[ 123, 1, 0, 0]

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

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

有两种方法:

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

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);