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

时间:2016-09-06 10:17:46

标签: node.js type-conversion

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

Uint8Arr[0]=0x12;
Uint8Arr[1]=0x19;
Uint8Arr[2]=0x21;
Uint8Arr[3]=0x47;

我想将Uint8Arr转换为等效的整数0x12192147303636807

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

3 个答案:

答案 0 :(得分:2)

对于那些希望使用低端字节序的人,可以使用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

答案 1 :(得分:1)

这是一个解决方案:

let Uint8Arr = new Uint8Array(4);

Uint8Arr[0]=0x12;
Uint8Arr[1]=0x19;
Uint8Arr[2]=0x21;
Uint8Arr[3]=0x47;

let buffer = Buffer.from(Uint8Arr);

console.log( buffer.readUInt32BE(0) );

答案 2 :(得分:1)

此解决方案将解决任何长度的Uint8Arr。

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

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

    return result;
}
相关问题