Java 尝试从字符串到整数变量获取二进制值时出现NumberFormat错误
您好,我是Java新手,如果您有任何帮助,我将不胜感激。我正在尝试将十进制数转换为二进制数,然后在该二进制数上左移。但它不允许我在字符串上左移,它给了我一个例外,我试图将它转换为整数Java 尝试从字符串到整数变量获取二进制值时出现NumberFormat错误,java,string,int,Java,String,Int,您好,我是Java新手,如果您有任何帮助,我将不胜感激。我正在尝试将十进制数转换为二进制数,然后在该二进制数上左移。但它不允许我在字符串上左移,它给了我一个例外,我试图将它转换为整数 int i = 40700; iToBinary = Integer.toBinaryString(i); i = Integer.parseInt(iToBinary); i=i<
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);
当使用移位运算符时,总是有超过整数限制的风险。我认为这在您的情况下发生过。请让我知道我发布的答案是否有效。