在node.js中将Uint8Array[n]转换为整数

7 type-conversion node.js

我有一个 Uint8Array[4] 类型的变量 Uint8Arr。

Uint8Arr[0]=0x12;
Uint8Arr[1]=0x19;
Uint8Arr[2]=0x21;
Uint8Arr[3]=0x47;
Run Code Online (Sandbox Code Playgroud)

我想转换Uint8Arr成它的等效整数0x12192147or 303636807

我想要一个可以将 Uint8Arr[n] 转换为其等效整数并以十进制形式返回结果的函数。

Eli*_*vis 10

对于那些想要小尾数的人,您可以使用DataView类指定尾数。

let buff = new Uint8Array(4);
buff[0]=0x12;
buff[1]=0x19;
buff[2]=0x21;
buff[3]=0x47;
var view = new DataView(buff.buffer, 0);
view.getUint32(0, true); // true here represents little-endian
Run Code Online (Sandbox Code Playgroud)


use*_*486 6

该解决方案将解决任意长度的 Uint8Arr。

function convert(Uint8Arr) {
    var length = Uint8Arr.length;

    let buffer = Buffer.from(Uint8Arr);
    var result = buffer.readUIntBE(0, length);

    return result;
}
Run Code Online (Sandbox Code Playgroud)