Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 尝试从字符串到整数变量获取二进制值时出现NumberFormat错误_Java_String_Int - Fatal编程技术网

Java 尝试从字符串到整数变量获取二进制值时出现NumberFormat错误

Java 尝试从字符串到整数变量获取二进制值时出现NumberFormat错误,java,string,int,Java,String,Int,您好,我是Java新手,如果您有任何帮助,我将不胜感激。我正在尝试将十进制数转换为二进制数,然后在该二进制数上左移。但它不允许我在字符串上左移,它给了我一个例外,我试图将它转换为整数 int i = 40700; iToBinary = Integer.toBinaryString(i); i = Integer.parseInt(iToBinary); i=i<

您好,我是Java新手,如果您有任何帮助,我将不胜感激。我正在尝试将十进制数转换为二进制数,然后在该二进制数上左移。但它不允许我在字符串上左移,它给了我一个例外,我试图将它转换为整数

                int i = 40700;
                iToBinary = Integer.toBinaryString(i);
                i = Integer.parseInt(iToBinary);
                i=i<<1;
inti=40700;
iToBinary=整数。toBinaryString(i);
i=整数.parseInt(二进制);

i=i您正在解析的二进制字符串对于整数来说太大了。请尝试以下操作:

long i = 40700;
iToBinary = Long.toBinaryString(i);
i = Long.parseLong(iToBinary);
i=i<<1;
长i=40700;
iToBinary=长toBinaryString(i);
i=Long.parseLong(二进制);

这可能会有帮助。试一试

     int i = 40700;
     String iToBinary = Integer.toBinaryString(i<<1);
     Long z = Long.parseLong(iToBinary,2);
     System.out.println(" i " + z);
inti=40700;

String iToBinary=Integer.toBinaryString(i您需要在
parseInt
方法中添加参数
radix
: 例如,请参见此链接:

以下是此方法的java示例:

Examples: 

     parseInt("0", 10) returns 0
     parseInt("473", 10) returns 473
     parseInt("+42", 10) returns 42
     parseInt("-0", 10) returns 0
     parseInt("-FF", 16) returns -255
     parseInt("1100110", 2) returns 102
在您的情况下,将:

i = Integer.parseInt(iToBinary, 2);

要解决异常,可以使用重载方法
Integer.parseInt
,使用两个参数,然后可以定义
基数

更改此行:

i = Integer.parseInt(iToBinary);
为此:

i = Integer.parseInt(iToBinary, 2);

当使用移位运算符时,总是有超过整数限制的风险。我认为这在您的情况下发生过。请让我知道我发布的答案是否有效。