Converter Byte em Int em Java
- Converter Byte em Int usando a classe Byte Wrapper e Casting em Java
- Usando Byte para a Conversão de Byte Não Assinado
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn