Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
二进制程序中的java.lang.NumberFormatException_Java_Exception_Binary_Numbers_Format - Fatal编程技术网

二进制程序中的java.lang.NumberFormatException

二进制程序中的java.lang.NumberFormatException,java,exception,binary,numbers,format,Java,Exception,Binary,Numbers,Format,我对Java真的很陌生,请原谅我的无知,但我不明白为什么我的程序每次都会抛出一个错误。我正在制作一个程序,将字符串转换成二进制并返回。这是我的错误。我尝试过各种不同的方法,但它总是抛出相同的错误( 这是我的代码行 int charCode = Integer.parseInt(String.valueOf(binary), 2); 如果您想知道,二进制文件与StringBuilder一起使用。 提前感谢!:) PS我也试着找到类似的问题,比如我的问题,但没有结果 整数在Java(以及几乎所有其

我对Java真的很陌生,请原谅我的无知,但我不明白为什么我的程序每次都会抛出一个错误。我正在制作一个程序,将字符串转换成二进制并返回。这是我的错误。我尝试过各种不同的方法,但它总是抛出相同的错误(

这是我的代码行

int charCode = Integer.parseInt(String.valueOf(binary), 2);
如果您想知道,二进制文件与StringBuilder一起使用。 提前感谢!:) PS我也试着找到类似的问题,比如我的问题,但没有结果

整数在Java(以及几乎所有其他编程语言)中的长度为4字节,这意味着它只能存储~
43000000
数字,如果是负数,则它是~
-2147000
+2147000

您输入的数字太大,无法将其解析为整数


我也不明白为什么要把二进制代码解析成整数。这应该可以做到:

    String binaryInput = "10000010001011110010000000010001000";

    long myNumber = 0;
    for (int i = binaryInput.length()-1; i >= 0; i--) {
        if (binaryInput.charAt(i) == '1') {
            myNumber += Math.pow(2, binaryInput.length() - i - 1);
        }
    }

    System.out.println("And the value is: " + myNumber);

输出:

And the value is: 17473011848
Java(以及几乎所有其他编程语言)中的整数长度为4字节,这意味着它只能存储~
43000000
数字,如果是负数,则为~
-214700000
+214700000

您输入的数字太大,无法将其解析为整数


我也不明白为什么要把二进制代码解析成整数。这应该可以做到:

    String binaryInput = "10000010001011110010000000010001000";

    long myNumber = 0;
    for (int i = binaryInput.length()-1; i >= 0; i--) {
        if (binaryInput.charAt(i) == '1') {
            myNumber += Math.pow(2, binaryInput.length() - i - 1);
        }
    }

    System.out.println("And the value is: " + myNumber);

输出:

And the value is: 17473011848
尝试:

您的二进制值大于整数。请尝试以下操作:


您的二进制值大于整数。最大值

以“2”为基数的BigInteger怎么样??单行代码

String str = "010000010001011110010000000010001000";
System.out.println(new BigInteger(str, 2));

以“2”为底的BigInteger怎么样??单行代码

String str = "010000010001011110010000000010001000";
System.out.println(new BigInteger(str, 2));
谢谢!:)非常有帮助。谢谢!:)非常有用。