Converti array di byte in intero in Java

Siddharth Swami 12 ottobre 2023
Converti array di byte in intero in Java

Byte rientra nei tipi di dati primitivi in ​​Java. Un array di byte in Java è un array contenente byte e memorizza una raccolta di dati binari. Il tipo di dati intero rappresenta i numeri interi in Java. Byte e numeri interi sono strettamente collegati perché i dati binari possono essere convertiti in formato intero.

In questo articolo, convertiremo un array di byte in un tipo intero in Java.

La classe ByteBuffer presente nel pacchetto java.nio in Java ci fornisce un metodo per convertire l’array di byte in un intero.

Vedi il codice qui sotto.

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() + " ");
  }
}

Produzione :

66320

Nel codice sopra, abbiamo creato un Bytebuffer di una data lunghezza dell’array di byte e, successivamente, abbiamo letto i successivi quattro byte da esso come un tipo intero. Il metodo ByteBuffer avvolge l’array di byte in un buffer e la funzione getInt() legge i successivi quattro byte nella classe come un numero intero.

Di seguito abbiamo un altro esempio di classe ByteBuffer. Nel codice seguente, allochiamo la memoria solo per due. La funzione svolta dai metodi è la stessa della precedente. Qui converte ogni byte separatamente come possiamo vedere che fornisce due output diversi.

Vedi il codice qui sotto.

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);
  }

Produzione :

3 4

Il ByteBuffer.wrap() avvolge l’array in un buffer. Per impostazione predefinita, memorizza i dati sotto forma di tipo big-endian 0x00. Si noti che nell’output abbiamo due interi diversi. Come discusso in precedenza, questo codice prende ogni elemento presente nell’array e lo converte di conseguenza.

Articolo correlato - Java Array