Java 将十六进制转换为二进制

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

在本文中,我们探讨了如何通过使用不同的方法将十六进制数转换为二进制数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程