HOWTO · Java
Converter Int em Byte em Java
Este artigo apresenta como converter int em byte em Java.
Nesta página
Este tutorial apresenta como converter int em byte em Java.
Em Java, int e byte são tipos primitivos e usados para armazenar valores numéricos. Ambos são usados para armazenar valores assinados e não assinados, mas têm diferentes intervalos de armazenamento. O intervalo de bytes é -128 a 127 e o intervalo interno é -2,147,483,648 a 2,147,483,647. Portanto, podemos ver claramente que int pode armazenar um valor maior do que o tipo de byte.
Ao converter int em byte, alguns dados são perdidos devido à memória. Vamos ver alguns exemplos.
Conversão de Int para Byte em Java
Neste exemplo, convertemos int em byte ao converter e ver se o valor int excede o intervalo de bytes. Em caso afirmativo, ele é convertido em um valor negativo. Isso significa que se um valor for maior do que o intervalo de bytes, ele será convertido em negativo. Portanto, quando convertemos um valor grande em tipo de byte, obtemos um resultado diferente do tipo int.
public class SimpleTesting {
public static void main(String[] args) {
int a = 127; // byte max positive range
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = 130; // Out of positive byte range
System.out.println("int value = " + a);
b = (byte) a;
System.out.println("byte value = " + b);
}
}
Resultado:
int value = 127
byte value = 127
int value = 130
byte value = -126
Conversão de Int em Byte e vice-versa em Java
Para converter um tipo int em um tipo de byte, precisamos usar typecasting explícito. No entanto, para converter o byte em int, não precisamos de nenhuma conversão explícita. Java faz isso implicitamente. Veja o exemplo abaixo.
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = b;
System.out.println("int value = " + a);
}
}
Resultado:
int value = 230
byte value = -26
int value = -26
Conversão de int para byte sem sinal em Java
Fizemos a conversão de assinaturas em todos os exemplos acima, mas se você quiser uma conversão sem sinal, use o código abaixo. Aqui, usamos o código & 0xFF, junto com o valor int, para obter uma conversão sem sinal. Veja o exemplo abaixo.
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = b & 0xFF;
System.out.println("int value = " + a);
}
}
Resultado:
int value = 230
byte value = -26
int value = 230
Conversão de Int em Byte e vice-versa usando Java 8
Se você estiver trabalhando com Java 8 ou uma versão superior, use o método toUnsignedInt() da classe Byte para obter uma conversão sem sinal. Veja o exemplo abaixo.
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
byte b = (byte) a;
System.out.println("byte value = " + b);
a = Byte.toUnsignedInt(b);
System.out.println("int value = " + a);
}
}
Resultado:
int value = 230
byte value = -26
int value = 230
Int para Byte usando o método byteValue() em Java
Também podemos usar o método byteValue() da classe Integer para obter o valor do byte após a conversão. Este método retorna um valor assinado. Portanto, use-o apenas se quiser obter um resultado com sinal. Veja o exemplo abaixo.
public class SimpleTesting {
public static void main(String[] args) {
int a = 230;
System.out.println("int value = " + a);
Integer i = a;
byte b = i.byteValue();
System.out.println("byte value = " + b);
}
}
Resultado:
int value = 230
byte value = -26