Porównaj ceny domen i usług IT, sprzedawców z całego świata

Konwersja Uint8Array na odpowiednik ciągu szesnastkowego w node.js


Używam node.js v4.5. Załóżmy, że mam tę zmienną Uint8Array.
var uint8 = new Uint8Array(4);
uint8[0] = 0x1f;
uint8[1] = 0x2f;
uint8[2] = 0x3f;
uint8[3] = 0x4f;

Ta tablica może mieć dowolną długość, ale załóżmy, że długość wynosi 4.
Chciałbym mieć funkcję, która konwertuje
uint8
na odpowiednik ciągu szesnastkowego.
var hex_string = convertUint8_to_hexStr(uint8);
//hex_string becomes "1f2f3f4f"

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz użyć
Buffer.from ()

,
https://nodejs.org/api/buffer. ... ength
a następnie użyj
toString('hex')
https://nodejs.org/api/buffer. ... t_end
:
let hex = Buffer.from(uint8).toString('hex');
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Inne rozwiązanie:
Podstawowa funkcja do konwersji int8 na hex:
// padd with leading 0 if <16
function i2hex(i) {
return ('0' + i.toString(16)).slice(-2);
}

reduce
:
uint8.reduce(function(memo, i) {return memo + i2hex(i)}, '');

Lub
map
i
dołącz
:
Array.from(uint8).map(i2hex).join('');

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się