Java 将二进制字符串解析为整数时出现数字格式异常

Java 将二进制字符串解析为整数时出现数字格式异常,java,parsing,binary,type-conversion,number-formatting,Java,Parsing,Binary,Type Conversion,Number Formatting,我有一段代码,我取4个整数,把它们转换成二进制字符串,把它们串联起来,然后再转换成一个整数 因此,我可以使用Integer.parseInt手动转换每个字符串。但是在连接之后,我得到了一个数字格式异常,这是由最后一个print语句引起的 我正在尝试将这个二进制字符串转换为整数 public static void main(String[] args) { int val1 = 700173; int val2 = 700173; int

我有一段代码,我取4个整数,把它们转换成二进制字符串,把它们串联起来,然后再转换成一个整数

因此,我可以使用Integer.parseInt手动转换每个字符串。但是在连接之后,我得到了一个数字格式异常,这是由最后一个print语句引起的

我正在尝试将这个二进制字符串转换为整数

    public static void main(String[] args) {
        int val1 = 700173;
        int val2 = 700173;
        int val3 = 700173;
        int val4 = 700173;
        
        String string1 = Integer.toBinaryString(val1);
        String string2 = Integer.toBinaryString(val2);
        String string3 = Integer.toBinaryString(val3);
        String string4 = Integer.toBinaryString(val4);
        
        String binaryString = string1 + string2 + string3 + string4;
        
        System.out.println(binaryString);
        
        System.out.println(Integer.parseInt(binaryString, 2));
        
    }
我想这可能与长度有关

如果能帮上忙,看看我缺了什么就好了


谢谢-

一个
int
只能有32位。这是81位。你可以用一个小盒子。像

在代码中

BigInteger bi = new BigInteger("101010101111000011011010101" //
        + "011110000110110101010111" //
        + "10000110110101010111100001101", 2);
System.out.println(bi);
输出

System.out.println(new BigInteger(binaryString, 2));

谢谢你,伙计,看来很傻,我忘了,现在它被指出了@氮-表达感谢的更好方式是接受和/或投票表决答案
System.out.println(new BigInteger(binaryString, 2));
807245278494179007835917