Метод toHexString() для типа long в Java

JavaBeginner
Практиковаться сейчас

Введение

В этом практическом занятии вы научитесь использовать метод Java toHexString(), который возвращает шестнадцатеричное представление значения, переданного в виде беззнакового целого числа в 64 бит. Вы узнаете, как использовать метод toHexString(), его параметры и тип возвращаемых значений.

Создайте класс Java

Откройте терминал и создайте новый класс на Java под названием LongToHexadecimal с использованием следующей команды:

touch LongToHexadecimal.java

Откройте файл LongToHexadecimal.java в текстовом редакторе.

Напишите метод main

Вставьте следующий код для определения метода main:

public class LongToHexadecimal {
    public static void main(String[] args){
        // Ваш код здесь
    }
}

Преобразуйте положительное long в шестнадцатеричное представление

Далее вы будете использовать метод toHexString(), чтобы преобразовать положительное long в шестнадцатеричное представление.

Добавьте следующий код внутри метода main, чтобы преобразовать значение long 60L в его шестнадцатеричное представление:

long i = 60L;
System.out.println("Фактическое число равно = " + i);
System.out.println("Шестнадцатеричное представление равно = " + Long.toHexString(i)); //возвращает значение long в шестнадцатеричной системе счисления в виде строки

Скомпилируйте и запустите программу в терминале с использованием следующей команды:

javac LongToHexadecimal.java && java LongToHexadecimal

Вы должны увидеть следующий вывод:

Фактическое число равно = 60
Шестнадцатеричное представление равно = 3c

Преобразуйте отрицательное long в шестнадцатеричное представление

Далее вы будете использовать метод toHexString(), чтобы преобразовать отрицательное long в шестнадцатеричное представление.

Добавьте следующий код внутри метода main, чтобы преобразовать значение long -52L в его шестнадцатеричное представление:

long j = -52L;
System.out.println("Фактическое число равно = " + j);
System.out.println("Шестнадцатеричное представление равно = " + Long.toHexString(j)); //возвращает значение long в шестнадцатеричной системе счисления в виде строки

Скомпилируйте и запустите программу снова в терминале с использованием следующей команды:

javac LongToHexadecimal.java && java LongToHexadecimal

Вы должны увидеть следующий вывод:

Фактическое число равно = -52
Шестнадцатеричное представление равно = ffffffffffffffcc

Принимайте ввод long от пользователя

Далее вы будете модифицировать программу для приема ввода от пользователя.

Добавьте следующий код внутри метода main, чтобы прочитать ввод long от пользователя и преобразовать его в его шестнадцатеричное представление:

Scanner sc = new Scanner(System.in);
System.out.print("Введите число = ");
long k = sc.nextLong();
System.out.println("Фактическое число равно  = " + k);
System.out.println("Шестнадцатеричное представление равно = " + Long.toHexString(k)); //возвращает значение long в шестнадцатеричной системе счисления в виде строки

Скомпилируйте и запустите программу снова в терминале с использованием следующей команды:

javac LongToHexadecimal.java && java LongToHexadecimal

Вы должны увидеть вывод, подобный следующему:

Введите число = 585
Фактическое число равно  = 585
Шестнадцатеричное представление равно = 249

Обработайте некорректный ввод

Далее вы добавите код для обработки некорректного ввода.

Измените существующий код внутри метода main, чтобы перехватывать любые исключения ввода:

Scanner sc = new Scanner(System.in);
try {
    System.out.print("Введите число = ");
    long k = sc.nextLong();
    System.out.println("Фактическое число равно  = " + k);
    System.out.println("Шестнадцатеричное представление равно = " + Long.toHexString(k)); //возвращает значение long в шестнадцатеричной системе счисления в виде строки
} catch (InputMismatchException ex) {
    System.out.println("Некорректный ввод! Пожалуйста, введите допустимое значение long.");
}

Скомпилируйте и запустите программу снова в терминале с использованием следующей команды:

javac LongToHexadecimal.java && java LongToHexadecimal

Вы должны увидеть вывод, подобный следующему:

Введите число = abc
Некорректный ввод! Пожалуйста, введите допустимое значение long.

Добавьте цикл

Далее вы будете модифицировать программу для приема ввода от пользователя до тех пор, пока они не завершат программу.

Добавьте следующий код внутри метода main, чтобы программа продолжала работать, пока пользователь не завершит ее:

Scanner sc = new Scanner(System.in);
while (true) {
    System.out.print("Введите число (или -1, чтобы выйти) = ");
    long k = sc.nextLong();
    if (k == -1) {
        System.out.println("До свидания!");
        break;
    }
    System.out.println("Фактическое число равно  = " + k);
    System.out.println("Шестнадцатеричное представление равно = " + Long.toHexString(k)); //возвращает значение long в шестнадцатеричной системе счисления в виде строки
}

Скомпилируйте и запустите программу снова в терминале с использованием следующей команды:

javac LongToHexadecimal.java && java LongToHexadecimal

Вы должны увидеть вывод, подобный следующему:

Введите число (или -1, чтобы выйти) = 456
Фактическое число равно  = 456
Шестнадцатеричное представление равно = 1c8
Введите число (или -1, чтобы выйти) = -999
Фактическое число равно  = -999
Шестнадцатеричное представление равно = fffffffffffffc19
Введите число (или -1, чтобы выйти) = 754
Фактическое число равно  = 754
Шестнадцатеричное представление равно = 2f2
Введите число (или -1, чтобы выйти) = -1
До свидания!

Тестируйте крайние случаи

Наконец, протестируйте граничные случаи, когда входное число является наибольшим и наименьшим числом, которое может быть представлено long.

Добавьте следующее внутри цикла while в методе main:

System.out.println("Фактическое число равно  = " + Long.MAX_VALUE);
System.out.println("Шестнадцатеричное представление равно = " + Long.toHexString(Long.MAX_VALUE)); //возвращает значение long в шестнадцатеричной системе счисления в виде строки
System.out.println("Фактическое число равно  = " + Long.MIN_VALUE);
System.out.println("Шестнадцатеричное представление равно = " + Long.toHexString(Long.MIN_VALUE)); //возвращает значение long в шестнадцатеричной системе счисления в виде строки

Скомпилируйте и запустите программу снова в терминале с использованием следующей команды:

javac LongToHexadecimal.java && java LongToHexadecimal

Вы должны увидеть вывод, подобный следующему:

Введите число (или -1, чтобы выйти) = 9223372036854775807
Фактическое число равно  = 9223372036854775807
Шестнадцатеричное представление равно = 7fffffffffffffff
Фактическое число равно  = -9223372036854775808
Шестнадцатеричное представление равно = 8000000000000000
Введите число (или -1, чтобы выйти) = -1
До свидания!

Резюме

В этом практическом занятии вы узнали, как использовать метод toHexString() в Java для преобразования значения long в его шестнадцатеричное представление. Вы практиковались в чтении ввода от пользователя, обработке исключений ввода пользователя и использовании цикла для запуска программы до тех пор, пока пользователь не остановит ее самостоятельно. Вы можете использовать эти концепции программирования для создания более сложных Java-приложений, которые манипулируют значениями long и принимают ввод от пользователя.