Java程序将十六进制转换为二进制
二进制数 − 有四种可用的数字系统。二进制数就是其中之一。二进制数由两个数字表示,即一 (1) 和零 (0)。二进制数在数字系统中表示为以 2 为基数。
十六进制数 − 十六进制数也是一种可用的数字系统。十六进制数用 16 个数字表示,从 0 到 15 (0, 1, 2, 3... 15)。从 10 到 15,它表示为 A 到 F。十六进制数在数字系统中表示为以 16 为基数。
在这里,我们将十六进制数转换为二进制数,其中我们为每个数字获得四位二进制数的组合。获得所有这些二进制数字后,我们将所有这些数字连接起来。通过这种方式,我们将十六进制数转换为二进制数。
在本文中,我们将了解如何在Java中将十六进制转换为二进制。
问题陈述
编写一个 Java 程序,将给定的十六进制数转换为其二进制等效值。每个十六进制数字应转换为一个四位二进制数,并将二进制值连接起来以形成最终的二进制表示。下面是相同的演示 -
输入 1
Input Hexadecimal number is 9AD.
输出 1
The Binary converted value of it = 100110101101
输入 2
Input octal number is 458
输出 2
The Binary converted value of it = 100110101101.
将十六进制转换为二进制的方法
我们提供了不同方法的解决方案 -
使用具有静态输入值的自定义方法
在这种方法中,我们通过静态输入方法声明一个十六进制输入数,并将此数作为参数传递给自定义方法,然后在方法内部按照以下步骤,我们可以将十六进制数转换为二进制数。
- 开始
- 为十六进制数声明一个字符串变量。
- 打印十六进制数。
- 调用转换方法。
- 在方法中,为十六进制到二进制映射创建一个HashMap。
- 循环遍历十六进制字符串中的每个字符。
- 检索并连接二进制值。
- 打印二进制转换。
- 停止
示例
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
使用具有用户输入值的自定义方法
在这种方法中,我们获取十六进制数的用户输入,并将此数作为参数传递给自定义方法,然后在方法内部按照以下步骤,我们可以将十六进制数转换为二进制数。
- 开始
- 创建一个用于输入的 Scanner 对象。
- 提示用户输入十六进制数。
- 读取并打印十六进制数。
- 调用转换方法。
- 在方法中,为十六进制到二进制映射创建一个 HashMap。
- 循环遍历十六进制字符串中的每个字符。
- 检索并连接二进制值。
- 打印二进制转换。
- 停止
示例
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
在本文中,我们探讨了如何使用不同的方法在 Java 中将十六进制数转换为二进制数。一种使用静态输入,另一种使用用户输入。通过使用 HashMap 将十六进制数字映射到其二进制值,我们能够有效地转换每个数字并将结果连接起来以形成最终的二进制表示。此练习有助于理解 Java 中的基本数字系统和字符串操作。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP