2017-05-10 11 views
0

私はオブジェクトを持っているので、 タイプ "バッファ"、 データは[0,0,2,6,116]の配列です。Javascript:decバイト配列オブジェクトを16進文字列に変換するにはどうすればよいですか?

この配列を小数点として扱う場合、16進文字列に変換したいと思います。 0、0、2、6、116 => 0、0、2、6、74 => 00、00、02、06、74

最終的に私はウェブページで20674または0000020674を見たいと思う。

Javascriptの中で最も速い方法/組み込み機能は何ですか?

+0

'input.map(機能(A){リターン(" 0 "+ a.toString(16))。slice(-2);})' –

+0

[tag:angularjs]のようなタグは、ライブラリがあなたのプロジェクトのどこかで使用されているために追加しないでください。質問に意味のあるタグがある場合は、タグを追加します。 – Claies

+0

ニエット、働いて、ありがとう!私はこれにbuldin js関数がないことに驚いています。 – user3552178

答えて

0

バッファのサイズによっては、文字列の連結が高価になることがあります。だから、最も簡単な方法は、データをエンコードし、文字列を構築するためにString.fromCharCodeを使用することが考えられます:

function dataToString(data){ 
    var buffer = [], table = [48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]; 

    for (var i = 0; i < data.length; ++i){ 
    buffer.push(table[data[i] >> 4]); 
    buffer.push(table[data[i] & 15]); 
    } 

    return String.fromCharCode.apply(String, buffer); 
} 

dataToString([0,0,2,6,116]); 

または文字列の連結を持つ:

[0,0,2,6,116].map(v => "ABCDEF"[v >> 4] + "ABCDEF"[v & 15]).join(''); 
関連する問題