Método Java Long toHexString

JavaBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a usar el método Java toHexString(), que devuelve el equivalente hexadecimal de un número base 16 del valor pasado como un entero sin signo de 64 bits. Aprenderá a usar el método toHexString(), sus parámetros y su tipo de retorno.

Crea una clase Java

Abre una terminal y crea una nueva clase Java llamada LongToHexadecimal con el siguiente comando:

touch LongToHexadecimal.java

Abre el archivo LongToHexadecimal.java en un editor de texto.

Escribe el método principal

Pega el siguiente código para definir el método principal:

public class LongToHexadecimal {
    public static void main(String[] args){
        // Tu código aquí
    }
}

Convertir un long positivo a hexadecimal

A continuación, utilizará el método toHexString() para convertir un long positivo a hexadecimal.

Agrega el siguiente código dentro del método main para convertir el valor long 60L a su equivalente hexadecimal:

long i = 60L;
System.out.println("El número actual es = " + i);
System.out.println("El equivalente hexadecimal es = " + Long.toHexString(i)); //devuelve el valor long en base 16 hexadecimal como una cadena

Compila y ejecuta el programa en la terminal con el siguiente comando:

javac LongToHexadecimal.java && java LongToHexadecimal

Deberías ver la siguiente salida:

El número actual es = 60
El equivalente hexadecimal es = 3c

Convertir un long negativo a hexadecimal

A continuación, utilizará el método toHexString() para convertir un long negativo a hexadecimal.

Agrega el siguiente código dentro del método main para convertir el valor long -52L a su equivalente hexadecimal:

long j = -52L;
System.out.println("El número actual es = " + j);
System.out.println("El equivalente hexadecimal es = " + Long.toHexString(j)); //devuelve el valor long en base 16 hexadecimal como una cadena

Compila y ejecuta el programa nuevamente en la terminal con el siguiente comando:

javac LongToHexadecimal.java && java LongToHexadecimal

Deberías ver la siguiente salida:

El número actual es = -52
El equivalente hexadecimal es = ffffffffffffffcc

Aceptar un long de entrada del usuario

A continuación, modificará el programa para aceptar la entrada del usuario.

Agrega el siguiente código dentro del método main para leer una entrada long del usuario y convertirla a su equivalente hexadecimal:

Scanner sc = new Scanner(System.in);
System.out.print("Ingrese el número = ");
long k = sc.nextLong();
System.out.println("El número actual es  = " + k);
System.out.println("La representación hexadecimal es = " + Long.toHexString(k)); //devuelve el valor long en base 16 hexadecimal como una cadena

Compila y ejecuta el programa nuevamente en la terminal con el siguiente comando:

javac LongToHexadecimal.java && java LongToHexadecimal

Deberías ver una salida como la siguiente:

Ingrese el número = 585
El número actual es  = 585
La representación hexadecimal es = 249

Manejar la entrada no válida

A continuación, agregará código para manejar la entrada no válida.

Modifica el código existente dentro del método main para capturar cualquier excepción de entrada:

Scanner sc = new Scanner(System.in);
try {
    System.out.print("Ingrese el número = ");
    long k = sc.nextLong();
    System.out.println("El número actual es  = " + k);
    System.out.println("La representación hexadecimal es = " + Long.toHexString(k)); //devuelve el valor long en base 16 hexadecimal como una cadena
} catch (InputMismatchException ex) {
    System.out.println("Entrada no válida! Por favor, ingrese un valor long válido.");
}

Compila y ejecuta el programa nuevamente en la terminal con el siguiente comando:

javac LongToHexadecimal.java && java LongToHexadecimal

Deberías ver una salida como la siguiente:

Ingrese el número = abc
Entrada no válida! Por favor, ingrese un valor long válido.

Agregar un bucle

A continuación, modificará el programa para aceptar la entrada del usuario hasta que abandonen el programa.

Agrega el siguiente código dentro del método main para mantener el programa en ejecución hasta que el usuario abandone:

Scanner sc = new Scanner(System.in);
while (true) {
    System.out.print("Ingrese el número (o -1 para salir) = ");
    long k = sc.nextLong();
    if (k == -1) {
        System.out.println("¡Hasta luego!");
        break;
    }
    System.out.println("El número actual es  = " + k);
    System.out.println("La representación hexadecimal es = " + Long.toHexString(k)); //devuelve el valor long en base 16 hexadecimal como una cadena
}

Compila y ejecuta el programa nuevamente en la terminal con el siguiente comando:

javac LongToHexadecimal.java && java LongToHexadecimal

Deberías ver una salida como la siguiente:

Ingrese el número (o -1 para salir) = 456
El número actual es  = 456
La representación hexadecimal es = 1c8
Ingrese el número (o -1 para salir) = -999
El número actual es  = -999
La representación hexadecimal es = fffffffffffffc19
Ingrese el número (o -1 para salir) = 754
El número actual es  = 754
La representación hexadecimal es = 2f2
Ingrese el número (o -1 para salir) = -1
¡Hasta luego!

Probar casos límite

Finalmente, prueba los casos límite donde el número de entrada es el número más grande y el más pequeño que puede representarse por un long.

Agrega lo siguiente dentro del bucle while en el método main:

System.out.println("El número actual es  = " + Long.MAX_VALUE);
System.out.println("La representación hexadecimal es = " + Long.toHexString(Long.MAX_VALUE)); //devuelve el valor long en base 16 hexadecimal como una cadena
System.out.println("El número actual es  = " + Long.MIN_VALUE);
System.out.println("La representación hexadecimal es = " + Long.toHexString(Long.MIN_VALUE)); //devuelve el valor long en base 16 hexadecimal como una cadena

Compila y ejecuta el programa nuevamente en la terminal con el siguiente comando:

javac LongToHexadecimal.java && java LongToHexadecimal

Deberías ver una salida como la siguiente:

Ingrese el número (o -1 para salir) = 9223372036854775807
El número actual es  = 9223372036854775807
La representación hexadecimal es = 7fffffffffffffff
El número actual es  = -9223372036854775808
La representación hexadecimal es = 8000000000000000
Ingrese el número (o -1 para salir) = -1
¡Hasta luego!

Resumen

En este laboratorio, aprendiste cómo usar el método toHexString() de Java para convertir un valor long a su equivalente hexadecimal. Practicaste la lectura de la entrada del usuario, el manejo de excepciones de entrada del usuario y el uso de un bucle para mantener un programa en ejecución hasta que el usuario lo abandone activamente. Puedes usar estos conceptos de programación para construir aplicaciones Java más complejas que manipulen valores long y tomen la entrada del usuario.