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í.
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