Convertir Int a Byte en Java

Mohammad Irfan 12 octubre 2023
  1. Conversión de Int a Byte en Java
  2. Conversión de Int a Byte y viceversa en Java
  3. Conversión de Int a Byte sin firmar en Java
  4. Conversión de Int a Byte y viceversa con Java 8
  5. Int a Byte usando el método byteValue() en Java
Convertir Int a Byte en Java

Este tutorial presenta cómo convertir int al byte en Java.

En Java, int y byte son tipos primitivos y se utilizan para almacenar valores numéricos. Ambos se utilizan para almacenar valores firmados y no firmados, pero tienen diferentes rangos de almacenamiento. El rango de bytes es -128 a 127 y el rango int es -2,147,483,648 a 2,147,483,647. Entonces, claramente, podemos ver que int puede almacenar un valor mayor que el tipo de byte.

Al convertir int a byte, algunos datos se pierden debido a la memoria. Veamos algunos ejemplos.

Conversión de Int a Byte en Java

En este ejemplo, convertimos int a byte mediante la conversión y vemos si el valor de int excede el rango de bytes. Si es así, se convierte en un valor negativo. Significa que si un valor es mayor que el rango de bytes, entonces se convierte en negativo. Entonces, cuando convertimos un valor grande en un tipo de byte, obtenemos un resultado diferente al del 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);
  }
}

Producción :

int value = 127
byte value = 127
int value = 130
byte value = -126

Conversión de Int a Byte y viceversa en Java

Para convertir un tipo int en un tipo byte, necesitamos usar el encasillado explícito. Sin embargo, para convertir el byte en int, no necesitamos ninguna conversión explícita. Java hace esto implícitamente. Vea el ejemplo a continuación.

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);
  }
}

Producción :

int value = 230
byte value = -26
int value = -26

Conversión de Int a Byte sin firmar en Java

Sí firmamos la conversión en todos los ejemplos anteriores, pero si desea una conversión sin firmar, utilice el código a continuación. Aquí, usamos el código & 0xFF, junto con el valor int, para obtener una conversión sin signo. Vea el ejemplo a continuación.

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);
  }
}

Producción :

int value = 230
byte value = -26
int value = 230

Conversión de Int a Byte y viceversa con Java 8

Si está trabajando con Java 8, o una versión superior, utilice el método toUnsignedInt() de la clase Byte para obtener una conversión sin firmar. Vea el ejemplo a continuación.

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);
  }
}

Producción :

int value = 230
byte value = -26
int value = 230

Int a Byte usando el método byteValue() en Java

También podemos usar el método byteValue() de la clase Integer para obtener el valor del byte después de la conversión. Este método devuelve un valor con signo. Por lo tanto, utilícelo solo si desea obtener un resultado firmado. Vea el ejemplo a continuación.

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);
  }
}

Producción :

int value = 230
byte value = -26

Artículo relacionado - Java Int

Artículo relacionado - Java Byte