如果使用变量 bin1 它不会转换,但是如果我用 bin2 替换参数,它似乎可以工作。
我尝试使用 long 而不是 int。还是一样。
public class Test{
public static void main(String[] args) {
String bin1 = "11011100000000010001000000000000";
String bin2 = "01100100001000010001000000000000";
int dec = Integer.parseInt(bin1, 2);
String hex = Integer.toString(dec, 16);
System.out.println(hex);
}
}
最佳答案
它实际上适用于多头。
public class Test{
public static void main(String[] args) {
String bin1 = "11011100000000010001000000000000";
String bin2 = "01100100001000010001000000000000";
long dec = Long.parseLong(bin1, 2);
String hex = Long.toString(dec, 16);
System.out.println(hex);
}
}
结果:
dc011000
您的数字对于 int
来说太大了。
关于java - 尝试将二进制转换为十六进制时不一致地获得 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49727983/