Convertir un tableau d'octets en entier en Java
![Convertir un tableau d'octets en entier en Java](/img/Java/feature-image---java-byte-array-to-int.webp)
L’octet fait partie des types de données primitifs en Java. Un tableau d’octets en Java est un tableau contenant des octets et stocke une collection de données binaires. Le type de données entier représente des entiers en Java. Les octets et les nombres entiers sont étroitement liés car les données binaires peuvent être converties en nombres entiers.
Dans cet article, nous allons convertir un tableau d’octets en un type entier en Java.
La classe ByteBuffer
présente dans le package java.nio
en Java nous fournit une méthode pour convertir le tableau d’octets en un entier.
Voir le code ci-dessous.
import java.nio.ByteBuffer;
public class Test {
public static void main(String[] args) {
byte[] bytes = {0x00, 0x01, 0x03, 0x10};
System.out.println(ByteBuffer.wrap(bytes).getInt() + " ");
}
}
Production :
66320
Dans le code ci-dessus, nous avons créé un Bytebuffer
d’une longueur donnée du tableau d’octets, et après cela, nous lisons les quatre octets suivants sous forme de type entier. La méthode Bytebuffer
enveloppe le tableau d’octets dans un tampon et la fonction getInt()
lit les quatre prochains octets de la classe sous la forme d’un entier.
Ci-dessous, nous avons un autre exemple de classe ByteBuffer
. Dans le code ci-dessous, nous allouons la mémoire par deux seulement. La fonction remplie par les méthodes est la même que la précédente. Ici, il convertit chaque octet séparément car nous pouvons le voir, il donne deux sorties différentes.
Voir le code ci-dessous.
import java.nio.*;
class Byte_Array_To_Int {
static void byte_To_Int(byte ar[]) {
ByteBuffer wrapped = ByteBuffer.wrap(ar); // big-endian by default
short num = wrapped.getShort();
ByteBuffer dbuf = ByteBuffer.allocate(2); // allocates the memory by 2.
dbuf.putShort(num);
byte[] bytes = dbuf.array();
for (int i = 0; i < bytes.length; i++) { // loop for printing the elements.
System.out.println(bytes[i]);
}
}
public static void main(String[] args) {
byte[] b = {0x03, 0x04}; // byte type array.
byte_To_Int(b);
}
Production :
3
4
Le ByteBuffer.wrap()
enveloppe le tableau dans un tampon. Par défaut, il stocke les données sous forme de type big-endian 0x00. Notez que dans la sortie, nous avons deux entiers différents. Comme indiqué précédemment, ce code prend chaque élément présent dans le tableau et le convertit en conséquence.