在javascript中将32位无符号小端转换为整数

Don*_*Don 3 javascript 32-bit

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

[ 123, 1, 0, 0]
Run Code Online (Sandbox Code Playgroud)

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

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

Bra*_*don 6

有两种方法:

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

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

如果您认为您的浏览器可能在大端环境中运行并且需要进行正确的端转换,那么您可以执行以下操作:

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);
Run Code Online (Sandbox Code Playgroud)