Hallo,
ich habe hier eine Methode, welche einen long wert in ein byte-Array umwandelt, welches hexadezimal ist.
Allerdings funktioniert dies nur für byte-arrays der Länge 16. Ich benötige es aber für eine Länge von 8.
Kann mir jemand sagen, was ich da ändern muss?
ich habe hier eine Methode, welche einen long wert in ein byte-Array umwandelt, welches hexadezimal ist.
Allerdings funktioniert dies nur für byte-arrays der Länge 16. Ich benötige es aber für eine Länge von 8.
Kann mir jemand sagen, was ich da ändern muss?
Java:
public static byte[] longToHex(long l) {
long v = l & 0xFFFFFFFFFFFFFFFFL;
byte[] result = new byte[16];
Arrays.fill(result, 0, result.length, (byte)0);
for (int i = 0; i < result.length; i += 2) {
byte b = (byte) ((v & 0xFF00000000000000L) >> 56);
byte b2 = (byte) (b & 0x0F);
byte b1 = (byte) ((b >> 4) & 0x0F);
if (b1 > 9) b1 += 39;
b1 += 48;
if (b2 > 9) b2 += 39;
b2 += 48;
result[i] = (byte) (b1 & 0xFF);
result[i + 1] = (byte) (b2 & 0xFF);
v <<= 8;
}
return result;
}