Convertir bytes a bytes sin firmar en Java

Haider Ali 12 octubre 2023
Convertir bytes a bytes sin firmar en Java

Para comprender el concepto de cómo convertir bytes en bytes sin firmar en Java, debe estar familiarizado con algunos conceptos informáticos de bajo nivel. Necesita saber todo sobre las conversiones, bits, bytes, palabras y demás. Vamos a sumergirnos.

Convertir bytes a bytes sin firmar en Java

Hay 8 bits en un byte, y las fórmulas para calcular el rango de bytes con signo y bytes sin signo son las siguientes.

Signed Number min = -1 * 2 ^ (N - 1) = -1 * 2 ^ (7) = -128 max = 2 ^ (N - 1) - 1 = 2 ^ 7 - 1 = 127

    Unsigned Number min = 0 max = 2 ^ (N) -1 = 2 ^ (8) - 1 = 255

    // N is the number of bits

El motivo del pequeño rango de números con signo es que se reserva un bit para mostrar símbolos con signo; es por eso que el rango es de -128 a 127. No hay bytes sin firmar en Java cuando se trata de números sin firmar. Entonces, ¿cómo los hacemos en Java?

Puede crear un byte sin firmar convirtiéndolo en un nuevo número entero (int) y enmascarando (Y bit a bit) ese número entero con 0xff. De esa manera, obtendrá los últimos 8 bits, evitando la extensión de la señal. Como sabemos, 0xFF = 1111 1111, después de su operación AND bit a bit con el byte original, le dará un byte sin firmar.

Si recuerda, cuando se trata de bits con signo, todos los bits de la izquierda son 1. La operación AND bit a bit los convertirá en 0, y esa es nuestra representación de un número sin signo. Echa un vistazo al siguiente código.

import javax.swing.GroupLayout.Alignment;
// library to perform this task
public class Main {
  public static void main(String[] args) {
    byte byteData = -3; //-3 SIGNED  253 UNSIGNED Byte
    int Data = byteData & 0xff;
    System.out.println(Data);
  }
}

Producción :

253

Es un procedimiento bastante simple, pero su concepto es un poco complejo. Obtenga más información sobre los bytes sin firmar en Java aquí.

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Artículo relacionado - Java Bytes