Java 将十六进制转换为二进制
二进制数 - 有四种可用的数制。二进制是其中之一。二进制数基本上由两个数字表示,即1和0。二进制数在数值系统中以基数2表示。
十六进制数 - 十六进制数也是可用的一种数制。十六进制数用16个数字表示,从0到15(0, 1, 2, 3… 15)。从10到15,它表示为A到F。十六进制数在数值系统中以基数16表示。
在这里,我们将十六进制数转换为二进制数,其中每个数位得到四位二进制数的组合。在得到所有这些二进制数位后,我们将所有这些数字连接起来。通过这种方式,我们将十六进制数转换为二进制数。
在本文中,我们将看到如何在Java中将十六进制转换为二进制。
向您展示一些示例-
示例1
Input Hexadecimal number is 9AD.
The Binary converted value of it = 100110101101
示例2
Input octal number is 458
The Binary converted value of it = 100110101101.
示例3
Input octal number is 6E7D.
The Binary converted value of it = 0110111001111101.
步骤
第一步 - 以字符串类型获取输入的数字,可以通过静态输入或用户输入方法获得。
第二步 - 我们创建一个HashMap类的对象,并将所有键和值附加到其中。在键中,我们给出十六进制数字0到F的各个位数,而在值中,我们给出相应的二进制值。
第三步 - 我们初始化一个循环,并在给定的十六进制数的长度结束之前运行它。
第四步 - 在每次迭代中,我们找到相应的二进制值并将其连接到另一个变量中。
第五步 - 最后,我们将计算得到的二进制值作为输出打印出来。
多种方法
我们以不同的方式提供了解决方案。
- 通过用户定义的方法以静态输入值的形式。
-
通过用户定义的方法以用户输入值的形式。
让我们逐个查看程序及其输出。
方法1:使用用户定义的方法和静态输入值
在这种方法中,我们通过静态输入方法声明一个十六进制输入数字,并将该数字作为参数传递给用户定义的方法,然后在方法内部,通过使用算法,我们可以将十六进制数转换为二进制数。
示例
import java.util.HashMap;
public class Main {
public static void main(String[] args){
String hexadecimalNumber = "12Fd89";
System.out.println("Given Hexadecimal number is ="+hexadecimalNumber.toUpperCase());
System.out.println("The binary conversion of "+hexadecimalNumber.toUpperCase() + " is "+hexadecimalToBinary(hexadecimalNumber));
}
public static String hexadecimalToBinary(String hexadecimalNumber){
String binaryNumber = "";
hexadecimalNumber = hexadecimalNumber.toUpperCase();
HashMap<Character, String> hm = new HashMap<Character, String>();
hm.put('0', "0000");
hm.put('1', "0001");
hm.put('2', "0010");
hm.put('3', "0011");
hm.put('4', "0100");
hm.put('5', "0101");
hm.put('6', "0110");
hm.put('7', "0111");
hm.put('8', "1000");
hm.put('9', "1001");
hm.put('A', "1010");
hm.put('B', "1011");
hm.put('C', "1100");
hm.put('D', "1101");
hm.put('E', "1110");
hm.put('F', "1111");
for (int i = 0; i < hexadecimalNumber.length(); i++) {
char c = hexadecimalNumber.charAt(i);
if (hm.containsKey(c))
binaryNumber += hm.get(c);
else {
binaryNumber = "You have entered an invalid Hexadecimal Number.";
return binaryNumber;
}
}
return binaryNumber;
}
}
输出
Given Hexadecimal number is = 12FD89
The binary conversion of 12FD89 is 000100101111110110001001
方法2:使用用户定义方法和用户输入值
在这个方法中,我们接受用户输入的十六进制数,并将这个数作为参数传递给用户定义的方法,然后在方法内部,我们使用算法将十六进制数转换为二进制数。
示例
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("Enter a Hexadecimal Number = ");
String hexadecimalNumber = sc.nextLine();
System.out.println("Given Hexadecimal number is = "+hexadecimalNumber.toUpperCase());
System.out.println("The binary conversion of "+ hexadecimalNumber.toUpperCase() + " is " +hexadecimalToBinary(hexadecimalNumber));
}
public static String hexadecimalToBinary(String hexadecimalNumber){
String binaryNumber = "";
hexadecimalNumber = hexadecimalNumber.toUpperCase();
HashMap<Character, String> hm = new HashMap<Character, String>();
hm.put('0', "0000");
hm.put('1', "0001");
hm.put('2', "0010");
hm.put('3', "0011");
hm.put('4', "0100");
hm.put('5', "0101");
hm.put('6', "0110");
hm.put('7', "0111");
hm.put('8', "1000");
hm.put('9', "1001");
hm.put('A', "1010");
hm.put('B', "1011");
hm.put('C', "1100");
hm.put('D', "1101");
hm.put('E', "1110");
hm.put('F', "1111");
for (int i = 0; i < hexadecimalNumber.length(); i++) {
char c = hexadecimalNumber.charAt(i);
if (hm.containsKey(c))
binaryNumber += hm.get(c);
else {
binaryNumber = "You have entered an invalid Hexadecimal Number.";
return binaryNumber;
}
}
return binaryNumber;
}
}
输出
Enter a Hexadecimal Number = de453a
Given Hexadecimal number is = DE453A
The binary conversion of DE453A is 110111100100010100111010
在本文中,我们探讨了如何通过使用不同的方法将十六进制数转换为二进制数。