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

时间:2018-04-09 07:52:26

标签: java binary hex data-conversion number-systems

如果使用变量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);
    }
}

1 个答案:

答案 0 :(得分:1)

它实际上可以用多头。

no

结果:

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 来说太大了。