2016-08-30 6 views
5

Я использую node.js v4.5. Предположим, что у меня есть эта переменная Uint8Array.Преобразование Uint8Array в эквивалент шестнадцатеричной строки в node.js

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

Этот массив может быть любой длины, но давайте предположим, что длина 4.

Я хотел бы иметь функцию, которая преобразует uint8 в шестнадцатеричный строковый эквивалент.

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 
}, ''); 

Или map и join:

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

Это неверно, если десятичное значение <16. Вот фиксированная версия 'uint8.reduce (function (memo, i) { return memo + (" 0 "+ i.toString (16)). Slice (-2); }, '');' – tintin

 Смежные вопросы

  • Нет связанных вопросов^_^