Converter Byte Array em Integer em Java
Byte vem sob os tipos de dados primitivos em Java. um array de bytes em Java é um array que contém bytes e armazena uma coleção de dados binários. O tipo de dados inteiro representa inteiros em Java. Bytes e inteiros estão intimamente ligados porque os dados binários podem ser convertidos para a forma inteira.
Neste artigo, converteremos um array de bytes em um tipo inteiro em Java.
A classe ByteBuffer
presente no pacote java.nio
em Java nos fornece um método para converter a matriz de bytes em um inteiro.
Veja o código abaixo.
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() + " ");
}
}
Resultado :
66320
No código acima, criamos um Bytebuffer
de um determinado comprimento do array de bytes, e depois disso, lemos os próximos quatro bytes dele como um tipo inteiro. O método ByteBuffer
envolve a matriz de bytes em um buffer, e a função getInt()
lê os próximos quatro bytes na classe como um inteiro.
Abaixo temos outro exemplo da classe ByteBuffer
. No código abaixo, alocamos a memória por apenas dois. A função desempenhada pelos métodos é a mesma da anterior. Aqui, ele converte cada byte separadamente, pois podemos ver que dá duas saídas diferentes.
Veja o código abaixo.
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);
}
Resultado :
3 4
O ByteBuffer.wrap()
envolve o array em um buffer. Por padrão, ele armazena os dados na forma do tipo big-endian 0x00. Observe que na saída, temos dois inteiros diferentes. Conforme discutido anteriormente, esse código pega cada elemento presente na matriz e os converte de acordo.