Convertir Byte a Int en Java

Rupam Yadav 12 octubre 2023
  1. Convierta Byte a Int usando la clase Byte Wrapper y Casting en Java
  2. Uso de Byte en la conversión de bytes sin firmar
Convertir Byte a Int en Java

Un tipo de datos de byte se define como un entero en complemento a dos con signo de 8 bits, mientras que un tipo de datos int se puede clasificar como un entero en complemento a dos con signo de 32 bits. A menos que exista preocupación por la memoria, un número entero es el tipo de datos predeterminado que se usa para almacenar valores integrales. En este artículo, analizaremos cómo puede convertir un byte en un tipo de datos int.

Convierta Byte a Int usando la clase Byte Wrapper y Casting en Java

Un byte contiene 0 como valor predeterminado y su rango varía de -128 = (-2 ^ 7) a 127 = (2 ^ 7 -1). Un número entero tiene un valor predeterminado de 0 y su rango varía de -2 ^ 31 a 2 ^ 31-1. La clase Wrapper para byte es Byte, mientras que para int es Integer.

Si el valor del byte excede su rango, el compilador lo promueve automáticamente a una variable int. En Java, solo hay un tipo de entero con signo (ningún concepto sin signo); esto significa que todos los tipos primitivos enteros, incluido el byte, están firmados. Sin embargo, el rango es de 0 a 255 para un tipo de datos de bytes sin firmar.

El objetivo de la conversión de byte a int es preservar el signo del valor. Aquí en el código, tenemos una variable de tipo byte b, que convertiremos en una variable de tipo int i. Por lo tanto, no está abatido. Podemos asignar directamente el byte al tipo de datos int.

En segundo lugar, tenemos un método de clase Wrapper intValue() que devuelve el valor de byte como un int después de ampliar la conversión primitiva ya que estamos almacenando un tipo de datos más pequeño en uno más grande.

Si tomamos el byte como unsigned, entonces tenemos el método Byte.toUnsignedInt() que convierte el argumento pasado a un int usando la conversión unsigned.

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

Producción

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

Uso de Byte en la conversión de bytes sin firmar

El rango para un tipo de datos de byte sin firmar va de 0 a 255; sin embargo, Java no tiene bytes sin firmar. Lo que puede hacer es convertir el byte en un int para convertirlo en un byte sin signo y enmascarar (bit a bit) el nuevo int con un 0xff para obtener los últimos 8 bits o evitar la extensión del signo.

Cuando se utiliza un valor de byte con el operador &, automáticamente convierte el byte en un número entero. El valor hexadecimal de 0x000000FF se indica como 0xFF.

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

Producción

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

Artículo relacionado - Java Byte

Artículo relacionado - Java Int