2016-08-30 5 views
5

node.js v4.5を使用しています。このUint8Array変数があるとします。Uint8Arrayをnode.jsに相当する16進文字列に変換してください

var uint8 = new Uint8Array(4); 
uint8[0] = 0x1f; 
uint8[1] = 0x2f; 
uint8[2] = 0x3f; 
uint8[3] = 0x4f; 

この配列は任意の長さではなくのは、長さが、私はそれが16進文字列と同等にuint8を変換する機能を持っていると思います。4.

であると仮定してみましょうことができます。

var hex_string = convertUint8_to_hexStr(uint8); 
//hex_string becomes "1f2f3f4f" 

答えて

1

別の解決策:reduce

uint8.reduce(function(memo, i) { 
    return memo + ('0' + i.toString(16)).slice(-2); //padd with leading 0 if <16 
}, ''); 

それともmapjoin

uint8.map(function(i) { 
    return ('0' + i.toString(16)).slice(-2); 
}).join(''); 
+1

小数値が<16の場合、これは正しくパディングされません。スライス(-2); }、 ''); '固定されたバージョン' uint8.reduce(function(memo、i){ return memo +( "0" + i.toString(16) – tintin

関連する問題