Java Long toHexString 方法

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用 Java 的 toHexString() 方法,该方法返回作为无符号长整型传递的值的十六进制等效值。你将学习如何使用 toHexString() 方法、其参数及其返回类型。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/BasicSyntaxGroup(["`Basic Syntax`"]) java(("`Java`")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["`Object-Oriented and Advanced Concepts`"]) java(("`Java`")) -.-> java/SystemandDataProcessingGroup(["`System and Data Processing`"]) java/BasicSyntaxGroup -.-> java/operators("`Operators`") java/BasicSyntaxGroup -.-> java/variables("`Variables`") java/BasicSyntaxGroup -.-> java/while_loop("`While Loop`") java/BasicSyntaxGroup -.-> java/output("`Output`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("`Classes/Objects`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("`User Input`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("`Exceptions`") java/SystemandDataProcessingGroup -.-> java/math_methods("`Math Methods`") java/SystemandDataProcessingGroup -.-> java/string_methods("`String Methods`") subgraph Lab Skills java/operators -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/variables -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/while_loop -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/output -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/classes_objects -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/user_input -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/exceptions -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/math_methods -.-> lab-117922{{"`Java Long toHexString 方法`"}} java/string_methods -.-> lab-117922{{"`Java Long toHexString 方法`"}} end

创建一个 Java 类

打开终端,使用以下命令创建一个名为 LongToHexadecimal 的 Java 类:

touch LongToHexadecimal.java

在文本编辑器中打开 LongToHexadecimal.java 文件。

编写 main 方法

粘贴以下代码以定义 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 值并接受用户输入。

您可能感兴趣的其他 Java 教程