2016-08-30 23 views
5

Tôi đang sử dụng node.js v4.5. Giả sử tôi có biến Uint8Array này.Chuyển đổi Uint8Array thành tương đương chuỗi hex trong node.js

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

mảng này có thể là của bất kỳ chiều dài nhưng chúng ta hãy giả định chiều dài là 4.

Tôi muốn có một chức năng mà có thể chuyển đổi uint8 vào chuỗi hex tương đương.

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

Trả lời

1

Một giải pháp: reduce:

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

Hoặc mapjoin:

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

Điều này không đúng khi giá trị thập phân là <16. Đây là phiên bản cố định 'uint8.reduce (hàm (memo, i) { bản ghi nhớ trả về + (" 0 "+ i.toString (16)). Slice (-2); }, '');' – tintin

Các vấn đề liên quan