我的String
为010101010111111111101010101010101010111101010101010101010101
且尺寸较大(超过64个字符)。
由于大小限制,我无法使用Integer
或Long
类解析方法。
预期输出为557FEAAAAF55555h
。
答案 0 :(得分:1)
使用BigInteger
:
String s = "010101010111111111101010101010101010111101010101010101010101";
BigInteger value = new BigInteger(s, 2);
System.out.println(value.toString(16));
这表明:
557feaaaaf55555
或者获得确切的输出:
System.out.println(value.toString(16).toUpperCase() + "h");
答案 1 :(得分:0)
public String GetHex(String binary){
String[] parts=binary.split("(?<=\\G.{4})");
String output="";
for(String s: parts)
{
output+=Integer.toHexString(Integer.parseInt(s, 2));
}
}
用二进制字符串调用它
String binary="010101010111111111101010101010101010111101010101010101010101";
String hexvalue=GetHex(binary); //557feaaaaf55555