Converter Byte em Int em Java

Rupam Yadav 12 outubro 2023
  1. Converter Byte em Int usando a classe Byte Wrapper e Casting em Java
  2. Usando Byte para a Conversão de Byte Não Assinado
Converter Byte em Int em Java

Um tipo de dados byte é definido como um inteiro complemento de dois com sinal de 8 bits, enquanto um tipo de dados int pode ser classificado como um inteiro complemento de dois com sinal de 32 bits. A menos que haja preocupação com a memória, um inteiro é o tipo de dados padrão usado para armazenar valores integrais. Neste artigo, vamos discutir como você pode converter um byte em um tipo de dados int.

Converter Byte em Int usando a classe Byte Wrapper e Casting em Java

Um byte mantém 0 como o valor padrão e seu intervalo varia de -128 = (-2 ^ 7) a 127 = (2 ^ 7 -1). Um número inteiro contém um valor padrão de 0 e seu intervalo varia de -2 ^ 31 a 2 ^ 31-1. A classe Wrapper para byte é Byte, enquanto para int é Integer.

Se o valor do byte exceder seu intervalo, o compilador o promoverá automaticamente para uma variável int. Em Java, existe apenas um tipo inteiro assinado (nenhum conceito não assinado); isso significa que todos os tipos primitivos inteiros, incluindo o byte, são assinados. No entanto, o intervalo é de 0 a 255 para um tipo de dados de byte não assinado.

O objetivo da conversão de byte em int é preservar o sinal do valor. Aqui no código, temos uma variável do tipo byte b, que converteremos em uma variável do tipo int i. Portanto, não é abatido. Podemos atribuir diretamente o byte ao tipo de dados int.

Em segundo lugar, temos um método de classe Wrapper intValue() que retorna o valor de byte como um int após ampliar a conversão primitiva, pois estamos armazenando um tipo de dados menor em um maior.

Se considerarmos o byte como sem sinal, então temos o método Byte.toUnsignedInt() que converte o argumento passado para um int usando a conversão sem sinal.

public class JavaByteToInt {
  public static void main(String args[]) {
    byte b = -98;
    System.out.println("byte b : = " + b);
    int i = b;
    System.out.println("int i : " + i);

    Byte byt = new Byte(b);
    int i1 = byt.intValue();
    int i2 = Byte.toUnsignedInt(byt);
    System.out.println("int i1 : " + i1);
    System.out.println("int i2 : " + i2);
  }
}

Resultado

byte b : = -98 int i : -98 int i1 : -98 int i2 : 158

Usando Byte para a Conversão de Byte Não Assinado

O intervalo para um tipo de dados de byte sem sinal vai de 0 a 255; entretanto, Java não possui bytes não assinados. O que você pode fazer é converter o byte em um int para criar um byte sem sinal e mascarar (bit a bit) o ​​novo int com um 0xff para obter os últimos 8 bits ou evitar a extensão do sinal.

Quando um valor de byte é usado com o operador &, ele converte automaticamente o byte em um inteiro. O valor Hex de 0x000000FF é denotado como 0xFF.

public class JavaByteToInt {
  public static void main(String args[]) {
    byte b = -127;
    int i = (b & 0xFF);
    System.out.println(i);
  }
}

Resultado

129
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java Byte

Artigo relacionado - Java Int