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。我怎么才能修复它?
发布于 2020-09-28 07:44:06
这个应该可以解决这个问题。
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);
}
}
}https://stackoverflow.com/questions/64094254
复制相似问题