Método toHexString() do Java para Long

JavaBeginner
Pratique Agora

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.