我有一个Uint8Array类型的变量Uint8Arr [4]。
Uint8Arr[0]=0x12;
Uint8Arr[1]=0x19;
Uint8Arr[2]=0x21;
Uint8Arr[3]=0x47;
我想将Uint8Arr
转换为等效的整数0x12192147
或303636807
。
我想有一个函数可以将Uint8Arr [n]转换为它的等效整数,并以十进制形式返回结果。
答案 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;
}