Introdução
Neste laboratório, você aprenderá como usar o método Java toHexString(), que retorna o equivalente hexadecimal de base 16 do valor passado como um long sem sinal. Você aprenderá como usar o método toHexString(), seus parâmetros e seu tipo de retorno.
Criar uma classe Java
Abra um terminal e crie uma nova classe Java chamada LongToHexadecimal usando o seguinte comando:
touch LongToHexadecimal.java
Abra o arquivo LongToHexadecimal.java em um editor de texto.
Escrever o método main
Cole o seguinte código para definir o método main:
public class LongToHexadecimal {
public static void main(String[] args){
// Your code here
}
}
Converter um long positivo para hexadecimal
Em seguida, você usará o método toHexString() para converter um long positivo para hexadecimal.
Adicione o seguinte código dentro do método main para converter o valor long 60L para seu equivalente hexadecimal:
long i = 60L;
System.out.println("Actual number is = " + i);
System.out.println("Hexadecimal equivalent is = " + Long.toHexString(i)); //returns the long value in hexadecimal base 16 as a string
Compile e execute o programa no terminal usando o seguinte comando:
javac LongToHexadecimal.java && java LongToHexadecimal
Você deve ver a seguinte saída:
Actual number is = 60
Hexadecimal equivalent is = 3c
Converter um long negativo para hexadecimal
Em seguida, você usará o método toHexString() para converter um long negativo para hexadecimal.
Adicione o seguinte código dentro do método main para converter o valor long -52L para seu equivalente hexadecimal:
long j = -52L;
System.out.println("Actual number is = " + j);
System.out.println("Hexadecimal equivalent is = " + Long.toHexString(j)); //returns the long value in hexadecimal base 16 as a string
Compile e execute o programa novamente no terminal usando o seguinte comando:
javac LongToHexadecimal.java && java LongToHexadecimal
Você deve ver a seguinte saída:
Actual number is = -52
Hexadecimal equivalent is = ffffffffffffffcc
Aceitar entrada long do usuário
Em seguida, você modificará o programa para aceitar entrada do usuário.
Adicione o seguinte código dentro do método main para ler uma entrada long do usuário e convertê-la para seu equivalente hexadecimal:
Scanner sc = new Scanner(System.in);
System.out.print("Enter the Number = ");
long k = sc.nextLong();
System.out.println("Actual Number is = " + k);
System.out.println("Hexadecimal representation is = " + Long.toHexString(k)); //returns the long value in hexadecimal base 16 as a string
Compile e execute o programa novamente no terminal usando o seguinte comando:
javac LongToHexadecimal.java && java LongToHexadecimal
Você deve ver uma saída como a seguinte:
Enter the Number = 585
Actual Number is = 585
Hexadecimal representation is = 249
Lidar com entrada inválida
Em seguida, você adicionará código para lidar com entrada inválida.
Modifique o código existente dentro do método main para capturar quaisquer exceções de entrada:
Scanner sc = new Scanner(System.in);
try {
System.out.print("Enter the Number = ");
long k = sc.nextLong();
System.out.println("Actual Number is = " + k);
System.out.println("Hexadecimal representation is = " + Long.toHexString(k)); //returns the long value in hexadecimal base 16 as a string
} catch (InputMismatchException ex) {
System.out.println("Invalid input! Please enter a valid long value.");
}
Compile e execute o programa novamente no terminal usando o seguinte comando:
javac LongToHexadecimal.java && java LongToHexadecimal
Você deve ver uma saída como a seguinte:
Enter the Number = abc
Invalid input! Please enter a valid long value.
Adicionar um loop
Em seguida, você modificará o programa para aceitar entrada do usuário até que ele saia do programa.
Adicione o seguinte código dentro do método main para manter o programa em execução até que o usuário saia:
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("Enter the Number (or -1 to quit) = ");
long k = sc.nextLong();
if (k == -1) {
System.out.println("Goodbye!");
break;
}
System.out.println("Actual Number is = " + k);
System.out.println("Hexadecimal representation is = " + Long.toHexString(k)); //returns the long value in hexadecimal base 16 as a string
}
Compile e execute o programa novamente no terminal usando o seguinte comando:
javac LongToHexadecimal.java && java LongToHexadecimal
Você deve ver uma saída como a seguinte:
Enter the Number (or -1 to quit) = 456
Actual Number is = 456
Hexadecimal representation is = 1c8
Enter the Number (or -1 to quit) = -999
Actual Number is = -999
Hexadecimal representation is = fffffffffffffc19
Enter the Number (or -1 to quit) = 754
Actual Number is = 754
Hexadecimal representation is = 2f2
Enter the Number (or -1 to quit) = -1
Goodbye!
Testar casos extremos
Finalmente, teste os casos extremos onde o número de entrada é o maior e o menor número que pode ser representado por um long.
Adicione o seguinte dentro do loop while no método main:
System.out.println("Actual Number is = " + Long.MAX_VALUE);
System.out.println("Hexadecimal representation is = " + Long.toHexString(Long.MAX_VALUE)); //returns the long value in hexadecimal base 16 as a string
System.out.println("Actual Number is = " + Long.MIN_VALUE);
System.out.println("Hexadecimal representation is = " + Long.toHexString(Long.MIN_VALUE)); //returns the long value in hexadecimal base 16 as a string
Compile e execute o programa novamente no terminal usando o seguinte comando:
javac LongToHexadecimal.java && java LongToHexadecimal
Você deve ver uma saída como a seguinte:
Enter the Number (or -1 to quit) = 9223372036854775807
Actual Number is = 9223372036854775807
Hexadecimal representation is = 7fffffffffffffff
Actual Number is = -9223372036854775808
Hexadecimal representation is = 8000000000000000
Enter the Number (or -1 to quit) = -1
Goodbye!
Resumo
Neste laboratório, você aprendeu como usar o método toHexString() do Java para converter um valor long em seu equivalente hexadecimal. Você praticou a leitura de entrada do usuário, o tratamento de exceções de entrada do usuário e o uso de um loop para manter um programa em execução até que o usuário saia ativamente. Você pode usar esses conceitos de programação para construir aplicações Java mais complexas que manipulam valores long e recebem entrada do usuário.



