Byte-Array zu Hex-String-Konvertierung in Javascript

8

Ich habe ein Byte-Array der Form [4,-101,122,-41,-30,23,-28,3,..] , das ich in der Form 6d69f597b217fa333246c2c8 konvertieren möchte Ich benutze unten Funktion

%Vor%

Das gibt mir eine Zeichenfolge der gleichen Form, aber ich vermute, dass es keine effiziente Konvertierung ist, weil die Hexadezimal-Zeichenfolge ist etwas kürzer als erwartet. Ich denke, das Übersetzen sollte "0a10a6dc" bekommen. Bitte sagen Sie mir, wenn ich falsch liege oder ist dies eine richtige Konvertierung, aber vielleicht verwende ich nicht das richtige Byte-Array

Byte-Array 4,-127,45,126,58,-104,41,-27,-43,27,-35,100,-50,-77,93,-16,96,105,-101,-63,48,-105,49,-67,110,111,26,84,67,-89,-7,-50,10,-12,56,47,-49,-42,-11,-8,-96,-117,-78,97,-105,9,-62,-44,-97,-73,113,96,23,112,-14,-62,103,-104,90,-14,117,78,31,-116,-7

Entsprechende Konvertierung 4812d7e3a9829e5d51bdd64ceb35df060699bc1309731bd6e6f1a5443a7f9ceaf4382fcfd6f5f8a08bb261979c2d49fb771601770f2c267985af2754e1f8cf9

    
Actung 16.12.2015, 10:49
quelle

3 Antworten

25

Sie fehlen die Auffüllung in der Hex-Konvertierung. Sie sollten

verwenden %Vor%

, so dass jedes Byte in genau zwei Hexadezimalziffern umgewandelt wird. Ihre erwartete Ausgabe wäre 04812d7e3a9829e5d51bdd64ceb35df060699bc1309731bd6e6f1a5443a7f9ce0af4382fcfd6f5f8a08bb2619709c2d49fb771601770f2c267985af2754e1f8cf9

    
Bergi 16.12.2015, 10:51
quelle
1

Sie müssen die Hex-Konvertierung mit der entsprechenden Anzahl von führenden Nullen auffüllen.

    
void 16.12.2015 10:53
quelle
1

Die Verwendung von map() funktioniert nicht, wenn die Eingabe vom Typ Uint8Array ist: Das Ergebnis von map() ist auch Uint8Array , das die Ergebnisse der String-Konvertierung nicht enthalten kann.

%Vor%     
grantpatterson 17.06.2017 19:51
quelle