介绍
在本实验中,你将学习如何使用 Java 的 toHexString()
方法,该方法返回作为无符号长整型传递的值的十六进制等效值。你将学习如何使用 toHexString()
方法、其参数及其返回类型。
在本实验中,你将学习如何使用 Java 的 toHexString()
方法,该方法返回作为无符号长整型传递的值的十六进制等效值。你将学习如何使用 toHexString()
方法、其参数及其返回类型。
打开终端,使用以下命令创建一个名为 LongToHexadecimal
的 Java 类:
touch LongToHexadecimal.java
在文本编辑器中打开 LongToHexadecimal.java
文件。
粘贴以下代码以定义 main 方法:
public class LongToHexadecimal {
public static void main(String[] args){
// Your code here
}
}
接下来,你将使用 toHexString()
方法将一个正长整型转换为十六进制。
在 main
方法中添加以下代码,将长整型值 60L
转换为其十六进制等效值:
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
在终端中使用以下命令编译并运行程序:
javac LongToHexadecimal.java && java LongToHexadecimal
你应该会看到以下输出:
Actual number is = 60
Hexadecimal equivalent is = 3c
接下来,你将使用 toHexString()
方法将一个负长整型转换为十六进制。
在 main
方法中添加以下代码,将长整型值 -52L
转换为其十六进制等效值:
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
在终端中再次使用以下命令编译并运行程序:
javac LongToHexadecimal.java && java LongToHexadecimal
你应该会看到以下输出:
Actual number is = -52
Hexadecimal equivalent is = ffffffffffffffcc
接下来,你将修改程序以接受用户输入。
在 main
方法中添加以下代码,从用户读取一个长整型输入并将其转换为十六进制等效值:
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
在终端中再次使用以下命令编译并运行程序:
javac LongToHexadecimal.java && java LongToHexadecimal
你应该会看到类似以下的输出:
Enter the Number = 585
Actual Number is = 585
Hexadecimal representation is = 249
接下来,你将添加代码以处理无效输入。
修改 main
方法中的现有代码,以捕获任何输入异常:
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.");
}
在终端中再次使用以下命令编译并运行程序:
javac LongToHexadecimal.java && java LongToHexadecimal
你应该会看到类似以下的输出:
Enter the Number = abc
Invalid input! Please enter a valid long value.
接下来,你将修改程序以持续接受用户输入,直到用户退出程序。
在 main
方法中添加以下代码,使程序持续运行,直到用户退出:
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
}
在终端中再次使用以下命令编译并运行程序:
javac LongToHexadecimal.java && java LongToHexadecimal
你应该会看到类似以下的输出:
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!
最后,测试输入数字为 long 类型可以表示的最大值和最小值的情况。
在 main
方法的 while
循环中添加以下代码:
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
在终端中再次使用以下命令编译并运行程序:
javac LongToHexadecimal.java && java LongToHexadecimal
你应该会看到类似以下的输出:
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!
在本实验中,你学习了如何使用 Java 的 toHexString()
方法将 long 值转换为其十六进制等效值。你练习了从用户读取输入、处理用户输入异常以及使用循环使程序持续运行,直到用户主动退出。你可以利用这些编程概念来构建更复杂的 Java 应用程序,这些应用程序可以操作 long 值并接受用户输入。