首页 > 解决方案 > 将二进制转换为十六进制和十六进制转换为二进制

问题描述

import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class Main
{
    public static String convertBinaryToHexadecimal(String binaryStr) 
    {
        return new BigInteger(binaryStr, 2).toString(16);
    }
    public static String convertHexadecimalToBinary(String hexStr)
    {
        return new BigInteger(hexStr, 16).toString(2);
        
    }
    public static void main(String[] args) 
    {
        String binaryStr = "01011111";
        String myhexStr = convertBinaryToHexadecimal(binaryStr);
        System.out.println(myhexStr);
        String myBinStr = convertHexadecimalToBinary(myhexStr);
        System.out.println(myBinStr);
    }
}

大家好。我正在尝试将二进制转换为十六进制和反之亦然。当我从十六进制转换为二进制时遇到问题。我的字符串二进制是“01011111”,当我转换为 Hexa 时,输出是 5f,这是正确的,但是当我转换回二进制时,输出是 1011111,前面缺少 0。我该如何解决?

标签: java

解决方案


这应该解决它。

import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class Main
{
   public static String convertBinaryToHexadecimal(String binaryStr) 
   {
      return new BigInteger(binaryStr, 2).toString(16);
   }
   public static String convertHexadecimalToBinary(String hexStr)
   {
      return new BigInteger(hexStr, 16).toString(2);
      
   }
   public static void main(String[] args) 
   {
      String binaryStr = "01011111";
      String myhexStr = convertBinaryToHexadecimal(binaryStr);
      System.out.println(myhexStr);
      String myBinStr = convertHexadecimalToBinary(myhexStr);
      
      if(myBinStr.length()<8){
         myBinStr = "0" + myBinStr;
         System.out.println(myBinStr);
      } 
      
      else{
         System.out.println(myBinStr);
      }
   }
}

推荐阅读