题记:Java十六进制装二进制报错,Integer.valueOf这个方法有一定的输入范围。
解决方法:字符串分段输入Integer.valueOf,然后再组合返回。
/**
* 将十六进制转换为二进制
*
* @param hexString
* @return
*/
private String hexString2binaryString(String hexString) {
if(hexString.length() == 24){
//16进制转10进制
int hexString1int = Integer.valueOf(hexString.substring(0, 6),16);
int hexString2int = Integer.valueOf(hexString.substring(6, 12),16);
int hexString3int = Integer.valueOf(hexString.substring(12,18),16);
int hexString4int = Integer.valueOf(hexString.substring(18,24),16);
//10进制转2进制
String bin1=Integer.toBinaryString(hexString1int);
String bin2=Integer.toBinaryString(hexString2int);
String bin3=Integer.toBinaryString(hexString3int);
String bin4=Integer.toBinaryString(hexString4int);
//字符串反转
String AllBin = bin1 + bin2 + bin3 + bin4;
return AllBin;
}else{
return null;
}
}
public static void main(String[] args){
Test test = new Test();
System.out.println(test.hexString2binaryString("3074257bf7194e4000001a85"));
}
}
返回结果: