如何在Java中把十六进制转换成十进制、二进制和八进制?

612 阅读4分钟

十六进制到十进制和二进制的Java转换

这个Java程序将使用JDK标准API方法在Java编程语言中把十六进制数转换为十进制、二进制和八进制数。对于不熟悉数字系统的初学者来说,十六进制是基数16的数字,而十进制是基数10,八进制是基数8,二进制是基数2的数字系统。二进制只包含0和1位,八进制包含0到7位,十进制包含0到9位,十六进制包含0-9、A、B、C、D、E、F,其中F代表15。值得庆幸的是,Java库提供了一种方便的方法,将任何整数从一种数字系统转换为另一种数字系统。

在上一篇文章中,我们看到了如何在Java中把十进制数字转换成二进制,在这篇文章中,我们将把十六进制数字转换成二进制、八进制和十进制数字。

如果你要参加编程面试,那么最好也准备一下如何在不使用Java API的情况下做这个练习,因为面试官通常希望程序员在面试时创建自己的方法,比如不使用StringBuffer reverse()方法来反转字符串

在Java中把十六进制转换为十进制、二进制和八进制

Java API提供了两种方法,用于将一个数字从一个数字系统转换为另一个数字系统。一个是 Integer.parseInt() , 用于 在Java中把String转换成Integer , 但也允许你指定radix或base。这意味着通过使用 parseInt(), 你可以在Java中把任何十六进制的字符串转换为十进制数字

同样的技术也可以用来在Java中把二进制字符串或八进制字符串转换为十进制数。一旦你得到一个代表十进制数的Integer对象,你可以使用 Integer.toBinaryString() 和 Integer.toOctalString() 在Java中把同一个十六进制数转换为二进制和八进制数。

这里有一个完整的代码例子,在Java中把十六进制数转换为二进制、十进制和八进制。

/ ** 
 *  
 * Java program to convert Hexadecimal to binary, decimal, and Octal in Java.  
 * Hexadecimal is base 16, the Decimal number is base 10, Octal is base 8  
 * and Binary is base 2 number which has just two numbers 0 and 1.  
 * @author  
 */  
public class ConvertHexaToDecimal {  
  
   
    public static void [main](http://java67.blogspot.sg/2012/08/what-is-main-method-in-java-why-main-is.html)(String args\[\]) {  
        _// Ask user to enter an Hexadecimal number in Console_  
        System.out.println("Please enter Hexadecimal number : ");  
        Scanner scanner = new Scanner(System.in);  
       
        [String](http://java67.blogspot.sg/2012/08/difference-between-string-and-stringbuffer-in-java.html) hexadecimal = scanner.next();  
       
        _//Converting Hexa decimal number to Decimal in Java_  
        int decimal = Integer.parseInt(hexadecimal, 16);  
       
        System.out.println("Converted Decimal number is : " + decimal);  
     
        _//Converting hexadecimal number to binary in Java_        
        String binary = Integer.toBinaryString(decimal);  
        System.out.printf("Hexadecimal to Binary conversion of %s is %s %n", hexadecimal, binary );  
       
        _// Converting Hex String to Octal in Java_  
        String octal = Integer.toOctalString(decimal);  
        System.out.printf("Hexadecimal to Octal conversion of %s is %s %n", hexadecimal, octal );  
    }  
} 

Output:
Please enter Hexadecimal number :
A
Converted Decimal number is : 10
Hexadecimal to Binary conversion of A is 1010
Hexadecimal to Octal conversion of A is 12

这里还有一张完整的1到20的数字从十进制到二进制到八进制到十六进制的转换图。你也应该试着记住这些数值,这将有很大的帮助。

How to convert Hexadecimal to Decimal, Binary and Octal in Java program - Example

使用Java API进行十六进制到十进制、二进制和八进制转换的一个好处是,上述代码也可以在Java中把负的十六进制数转换为二进制、八进制和十进制,如下图输出所示。

请输入十六进制数 :
-B
转换后的十进制数是 : -11
十六进制数转换为二进制数 -B 是111111111111111111110101
十六进制数转换为八进制数 -B 是37777777765

以上就是如何在Java中把十六进制数转换为十进制数的全部内容。通过使用类似的技术,我们也可以将十六进制数转换为二进制和八进制数。如果你遇到任何其他在Java中把十六进制数转换为二进制、十进制和八进制的方法,请告诉我们。

感谢你阅读这篇文章。如果你喜欢这篇文章,请与你的朋友和同事分享。如果你有任何问题或疑问,请告诉我们,我将努力为你找到答案。像往常一样,我们非常欢迎建议、评论、创新和更好的答案。