Wie konvertiert byte-array in hex-format in Java

Ich weiß, dass Sie verwenden können printf und auch StringBuilder.append(String.format("%x", byte)) zum konvertieren von Werten, HEX-Werten und zeigt Sie auf der Konsole. Aber ich möchte in der Lage sein, um tatsächlich format der byte-array, so dass jedes byte angezeigt, da HEX statt dezimal.

Hier ein Ausschnitt aus meinem code habe ich bereits, die ersten beiden Möglichkeiten, die ich angegeben:

if(bytes > 0)
    {
        byteArray = new byte[bytes]; //Set up array to receive these values.

        for(int i=0; i<bytes; i++)
        {
            byteString = hexSubString(hexString, offSet, CHARSPERBYTE, false); //Isolate digits for a single byte.
            Log.d("HEXSTRING", byteString);

            if(byteString.length() > 0)
            {
                byteArray[i] = (byte)Integer.parseInt(byteString, 16); //Parse value into binary data array.
            }
            else
            {
                System.out.println("String is empty!");
            }

            offSet += CHARSPERBYTE; //Set up for next word hex.    
        }

        StringBuilder sb = new StringBuilder();
        for(byte b : byteArray)
        {
            sb.append(String.format("%x", b));
        }

        byte subSystem = byteArray[0];
        byte highLevel = byteArray[1];
        byte lowLevel = byteArray[2];

        System.out.println("Byte array size: " + byteArray.length);
        System.out.printf("Byte 1: " + "%x", subSystem);
        System.out.printf("Byte 2: " + "%x", highLevel);
        System.out.println("Byte 3: " + lowLevel);
        System.out.println("Byte array value: " + Arrays.toString(byteArray));
        System.out.println("Byte array values as HEX: " + sb.toString());
    }
    else
    {
        byteArray = new byte[0]; //No hex data.

        //throw new HexException();
    }

    return byteArray;

Den string, der aufgeteilt wurde, bis in das byte-array wurde:

"1E2021345A2B"

Aber zeigt es als Dezimalzahl auf der Konsole wie:

"303233529043"

Könnte jemand bitte helfen Sie mir, wie man die tatsächlichen Werte werden in hex angezeigt werden, das in dieser Weise natürlich. Vielen Dank im Voraus.

Warum rufst du nicht einfach Integer.parseInt(sb.toString(), 16) ?

InformationsquelleAutor James Meade | 2013-10-18

Schreibe einen Kommentar