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);
System.out.println(myBinStr);
}
}
大家好。我正在尝试将二进制转换为十六进制和反之亦然。当我从十六进制转换为二进制时遇到问题。我的字符串二进制是“01011111”,当我转换为 Hexa 时,输出是 5f,这是正确的,但是当我转换回二进制时,输出是 1011111,前面缺少 0。我该如何解决?
解决方案
这应该解决它。
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);
}
}
}
推荐阅读
- c# - Asp.net Core 2.1 中的路由
- assembly - 有没有办法使用其他二进制文件中的全局符号而不链接它
- javascript - 如何从 React 组件渲染样式和定义变量?
- android - 如何更改 LiveData 的值而不通知观察者
- c# - 实际提供值时,如何解决“无法添加实体类型'X的种子实体,因为没有提供值”?
- java - 将对象添加到java的数组中
- android - 如何在recyclerview中仅刷新列表的一部分
- laravel - 如何在不使用 auth::attempt() 的情况下检查电子邮件和密码?
- python - 使用带有 Selenium 的 Python 单击按钮
- html - 背景图像的CSS问题