Ich habe ein Array von Bytes, die zu einem Array von Longs umgepackt werden muss. das Eingabe-Byte-Array hat eine unbekannte Größe (ungefähr von 0 bis einigen hundert). das lange Array muss herauskommen rechtsbündig dh der niedrigste Index lang sollte mit Nullen aufgefüllt werden und alle anderen sollten voll mit den Eingangsbytes sein: . (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11) -> (xxxxb0b1b2b3, b4b5b6b7b8b9b10b11)ordentlich konvertieren Byte [] zu lang [] in Java
wo b1, b2 usw. ist ein gegebenes Byte. ich habe eine Lösung, aber es ist nicht sehr ordentlich oder lesbar:
// outArr has length (inArr.length+7)/8
for (int i = 0; i < inArr.length ; i++) {
outArr[outArr.length - i/8 - 1] |= ((long)inArr[inArr.length - i - 1]) << (i % 8) * 8;
}
gibt es eine weniger hässliche Art und Weise, dies zu tun?
bitte einen Blick auf http://stackoverflow.com/questions/4485128/how-do-i- convert-long-to-byte-und-back-in-java –