On pourrait utiliser les Buffer
s qui sont fournis dans le cadre du java.nio
package pour effectuer la conversion.
Ici, le byte[]
tableau source a une de longueur 8, qui est la taille qui correspond à une long
valeur.
Tout d'abord, le byte[]
tableau est encapsulé dans a ByteBuffer
, puis la ByteBuffer.getLong
méthode est appelée pour obtenir la long
valeur:
ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();
System.out.println(l);
Résultat
4
Je tiens à remercier dfa pour avoir indiqué la ByteBuffer.getLong
méthode dans les commentaires.
Bien que cela ne soit peut-être pas applicable dans cette situation, la beauté du Buffer
s vient de regarder un tableau avec plusieurs valeurs.
Par exemple, si nous avions un tableau de 8 octets et que nous voulions le voir sous forme de deux int
valeurs, nous pourrions envelopper le byte[]
tableau dans un ByteBuffer
, qui est considéré comme un IntBuffer
et obtenir les valeurs par 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);
Résultat:
1
4