Converter Int em Byte em Java

Mohammad Irfan 12 outubro 2023
  1. Conversão de Int para Byte em Java
  2. Conversão de Int em Byte e vice-versa em Java
  3. Conversão de int para byte sem sinal em Java
  4. Conversão de Int em Byte e vice-versa usando Java 8
  5. Int para Byte usando o método byteValue() em Java
Converter Int em Byte em Java

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

Artigo relacionado - Java Int

Artigo relacionado - Java Byte