尝试将二进制转换为十六进制时不一致地获取 NumberFormatException

Inconsistently getting NumberFormatException when trying to convert binary to hex

如果使用变量 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来说太大了。