十六进制到十进制和二进制的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的数字从十进制到二进制到八进制到十六进制的转换图。你也应该试着记住这些数值,这将有很大的帮助。
使用Java API进行十六进制到十进制、二进制和八进制转换的一个好处是,上述代码也可以在Java中把负的十六进制数转换为二进制、八进制和十进制,如下图输出所示。
请输入十六进制数 :
-B
转换后的十进制数是 : -11
十六进制数转换为二进制数 -B 是111111111111111111110101
十六进制数转换为八进制数 -B 是37777777765
以上就是如何在Java中把十六进制数转换为十进制数的全部内容。通过使用类似的技术,我们也可以将十六进制数转换为二进制和八进制数。如果你遇到任何其他在Java中把十六进制数转换为二进制、十进制和八进制的方法,请告诉我们。
感谢你阅读这篇文章。如果你喜欢这篇文章,请与你的朋友和同事分享。如果你有任何问题或疑问,请告诉我们,我将努力为你找到答案。像往常一样,我们非常欢迎建议、评论、创新和更好的答案。