Introducción
En este laboratorio, aprenderemos sobre el método reverseBytes()
de la clase Long
de Java, que se utiliza para invertir el orden de los bytes de la representación binaria de complemento a dos del valor long
pasado.
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
En este laboratorio, aprenderemos sobre el método reverseBytes()
de la clase Long
de Java, que se utiliza para invertir el orden de los bytes de la representación binaria de complemento a dos del valor long
pasado.
Primero, necesitamos crear una clase Java en el directorio ~/proyecto
. Llamémosla ReverseBytesDemo.java
.
public class ReverseBytesDemo {
}
A continuación, necesitamos agregar el método main
a nuestra clase. Este será el punto de entrada de nuestro programa.
public static void main(String[] args) {
}
reverseBytes()
Ahora, usemos el método reverseBytes()
para invertir los bytes de un valor long
.
long a = 342;
long reversedValue = Long.reverseBytes(a);
System.out.println("Valor original: " + a);
System.out.println("Valor invertido: " + reversedValue);
Este código imprimirá:
Valor original: 342
Valor invertido: 6197234562238513152
También podemos tomar la entrada del usuario e invertir los bytes del valor de entrada. Modifiquemos nuestro código para tomar la entrada del usuario.
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese un número: ");
long userInput = scanner.nextLong();
long reversedValue = Long.reverseBytes(userInput);
System.out.println("Valor original: " + userInput);
System.out.println("Valor invertido: " + reversedValue);
Este código le pide al usuario que ingrese un número y luego invierte los bytes del valor de entrada. Ejecute el código usando el comando javac ReverseBytesDemo.java && java ReverseBytesDemo
.
Podemos manejar cualquier excepción que pueda ocurrir al tomar la entrada del usuario mediante un bloque try-catch
.
Scanner scanner = new Scanner(System.in);
try {
System.out.print("Ingrese un número: ");
long userInput = scanner.nextLong();
long reversedValue = Long.reverseBytes(userInput);
System.out.println("Valor original: " + userInput);
System.out.println("Valor invertido: " + reversedValue);
} catch (InputMismatchException e) {
System.out.println("Entrada no válida. Por favor, ingrese un número válido.");
}
Este código utiliza un bloque try-catch
para manejar cualquier excepción que pueda ocurrir cuando el usuario ingrese una entrada no válida.
Vamos a probar el método reverseBytes()
con un número negativo.
long a = -23;
long reversedValue = Long.reverseBytes(a);
System.out.println("Valor original: " + a);
System.out.println("Valor invertido: " + reversedValue);
Este código imprimirá:
Valor original: -23
Valor invertido: -1585267068834414593
También podemos mostrar la representación binaria de los valores original e invertido usando el método Long.toBinaryString()
.
System.out.println("Valor original en binario: " + Long.toBinaryString(a));
System.out.println("Valor invertido en binario: " + Long.toBinaryString(reversedValue));
Este código imprimirá:
Valor original en binario: 1111111111111111111111111111111111111111111111111111111111101001
Valor invertido en binario: 1010101100000000000000000000000000000000000000000000000000000000
Tenga en cuenta que la representación binaria del valor invertido es la representación binaria original con cada grupo de 8 bits invertido.
Vamos a escribir una función definida por el usuario para encapsular el método reverseBytes()
.
public class ReverseBytesDemo {
public static long reverseBytes(long value) {
return Long.reverseBytes(value);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("Ingrese un número: ");
long userInput = scanner.nextLong();
long reversedValue = reverseBytes(userInput);
System.out.println("Valor original: " + userInput);
System.out.println("Valor invertido: " + reversedValue);
System.out.println("Valor original en binario: " + Long.toBinaryString(userInput));
System.out.println("Valor invertido en binario: " + Long.toBinaryString(reversedValue));
} catch (InputMismatchException e) {
System.out.println("Entrada no válida. Por favor, ingrese un número válido.");
}
}
}
Ahora que tenemos nuestra función definida por el usuario configurada, podemos probarla volviendo a ejecutar el método main()
modificado.
Scanner scanner = new Scanner(System.in);
try {
System.out.print("Ingrese un número: ");
long userInput = scanner.nextLong();
long reversedValue = reverseBytes(userInput);
System.out.println("Valor original: " + userInput);
System.out.println("Valor invertido: " + reversedValue);
System.out.println("Valor original en binario: " + Long.toBinaryString(userInput));
System.out.println("Valor invertido en binario: " + Long.toBinaryString(reversedValue));
} catch (InputMismatchException e) {
System.out.println("Entrada no válida. Por favor, ingrese un número válido.");
}
Ejecute el código usando el comando javac ReverseBytesDemo.java && java ReverseBytesDemo
.
En este laboratorio, aprendimos sobre el método reverseBytes()
de la clase Long
en Java, que se utiliza para invertir el orden de los bytes de la representación binaria de complemento a dos del valor long
pasado. También aprendimos cómo usar la entrada del usuario, manejar excepciones, mostrar la representación binaria y encapsular el método en una función definida por el usuario. Siguiendo estos pasos, ahora deberías poder usar el método reverseBytes()
en tus propios programas Java.