有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在尝试将二进制文件转换为十六进制文件时出现NumberFormatException不一致

如果使用变量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) 个答案

  1. # 1 楼答案

    它实际上可以很好地处理long

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