Heim >Java >javaLernprogramm >Wie konvertiert man ein Byte-Array in Java in ein Hexadezimal-Array?
Byte-Array in Java in Hexadezimal konvertieren
Das Konvertieren eines Byte-Arrays in seine hexadezimale Darstellung ist eine häufige Aufgabe in der Softwareentwicklung. Java bietet mehrere Methoden, um diese Konvertierung zu erreichen.
Ein Ansatz besteht darin, die Methode String.format() mit einer bestimmten Formatzeichenfolge zu verwenden: „X“. Hier ist ein Beispiel:
byte[] bytes = {-1, 0, 1, 2, 3 }; StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02X ", b)); // Pad with zero and separate with space } System.out.println(sb.toString()); // Prints "FF 00 01 02 03"
Diese Methode stellt sicher, dass jedes Byte als zweistellige hexadezimale Zeichenfolge dargestellt wird, mit führenden Nullen zum Auffüllen freier Positionen.
Alternativ für eine kompaktere Darstellung Darstellung können Sie die Auffüllung und das Trennzeichen weglassen:
StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%X", b)); // Shorter representation } System.out.println(sb.toString()); // Prints "FF00010203"
Es ist erwähnenswert, dass die Konvertierung eines signierten Die Umwandlung eines Bytes in eine 32-Bit-Ganzzahl vor der Konvertierung in eine Hexadezimalzahl mit Integer.toHexString() kann aufgrund der Vorzeichenerweiterung zu falschen Ergebnissen führen. Um dieses Problem zu vermeiden, können Sie den Bytewert explizit mit 0xFF maskieren:
byte b = -1; System.out.println(Integer.toHexString(b & 0xFF)); // Correct conversion: "FF"
Wenn Ihr Byte-Array schließlich ASCII-Zeichen anstelle von Rohbytes enthält, können Sie den neuen String(bytes, „US- ASCII")-Konstruktor zum direkten Erstellen einer String-Darstellung.
Das obige ist der detaillierte Inhalt vonWie konvertiert man ein Byte-Array in Java in ein Hexadezimal-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!