Man könnte die Buffer
s, die als Teil des java.nio
Pakets bereitgestellt werden, verwenden, um die Konvertierung durchzuführen.
Hier hat das byte[]
Quellarray eine Länge von 8, was der Größe entspricht, die einem long
Wert entspricht.
Zuerst wird das byte[]
Array in a eingeschlossen ByteBuffer
, und dann wird die ByteBuffer.getLong
Methode aufgerufen, um den long
Wert zu erhalten :
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Ergebnis
4
Ich möchte mich bei dfa für den Hinweis auf die ByteBuffer.getLong
Methode in den Kommentaren bedanken .
Obwohl dies in dieser Situation möglicherweise nicht anwendbar ist, besteht die Schönheit des Buffer
s darin, ein Array mit mehreren Werten zu betrachten.
Wenn wir beispielsweise ein 8-Byte-Array hätten und es als zwei int
Werte anzeigen wollten , könnten wir das byte[]
Array in ein ByteBuffer
, das als a angesehen wird, einschließen IntBuffer
und die Werte erhalten durch IntBuffer.get
:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 1, 0, 0, 0, 4});
IntBuffer ib = bb.asIntBuffer();
int i0 = ib.get(0);
int i1 = ib.get(1);
System.out.println(i0);
System.out.println(i1);
Ergebnis:
1
4