首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将二进制转换为十六进制,并将十六进制转换为二进制

将二进制转换为十六进制,并将十六进制转换为二进制
EN

Stack Overflow用户
提问于 2020-09-28 07:33:28
回答 1查看 61关注 0票数 0
代码语言:javascript
复制
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",当我转换成十六进制时,输出是5f,这是正确的,但当我转换回二进制时,输出是1011111,前面缺少0。我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2020-09-28 07:44:06

这个应该可以解决这个问题。

代码语言:javascript
复制
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);
      }
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64094254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档