2016-08-30 32 views
5

'da onaltılık dize dönüştürün node.js v4.5 kullanıyorum. Bu Uint8Array değişkenine sahip olduğumu varsayalım.Uint8Array'i node.js

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

Bu dizi herhangi bir uzunlukta olabilir ama uzunluğu O onaltılık dize eşdeğer içine uint8 dönüştüren bir işleve sahip istiyorum 4.

olduğunu varsayalım olabilir.

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

cevap

1

Başka bir çözüm: reduce:

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

Ya map ve join:

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

Bu, ondalık değer <16 olduğunda düzgün şekilde doldurulmaz. Burada sabit bir sürüm 'uint8.reduce (işlev (not, i) { döndürme notu + (" 0 "+ i.toString (16)). Dilim (-2); }, '');' – tintin