Java NumberFormatException:将包含二进制数字的字符串转换为十进制后,int无效
我有一个问题,我有一个Java字符串,其中包含无法转换为十进制等价物的二进制数字 问题标题中的错误是由以下代码导致的:Java NumberFormatException:将包含二进制数字的字符串转换为十进制后,int无效,java,string,int,parseint,Java,String,Int,Parseint,我有一个问题,我有一个Java字符串,其中包含无法转换为十进制等价物的二进制数字 问题标题中的错误是由以下代码导致的: int decimalValue = Integer.parseInt("001001000110000111001001000111000110001010001011",2); System.out.println("Ciphertext :\t"+decimalValue); 但是,当我使用较小的二进制数字字符串(如“1101”)进行测试时,程序运行良
int decimalValue = Integer.parseInt("001001000110000111001001000111000110001010001011",2);
System.out.println("Ciphertext :\t"+decimalValue);
但是,当我使用较小的二进制数字字符串(如“1101”)进行测试时,程序运行良好。我做错什么了吗?是的。您正试图将超过32位解析为
int
。您需要一个长的(基于您的输入)类似
long decimalValue = Long.parseLong(
"001001000110000111001001000111000110001010001011", 2);
这是
40002404508299
(Integer.MAX_VALUE
是2147483647
)。是。您正试图将超过32位解析为int
。您需要一个长的(基于您的输入)类似
long decimalValue = Long.parseLong(
"001001000110000111001001000111000110001010001011", 2);
它是
40002404508299
(Integer.MAX_VALUE
是2147483647
)。整数有一个最大值。我猜你超过了这个值。不过,这只是一个猜测。你会建议我如何继续使用BigInteger?你能放一个演示poc吗?如果它有效,我会将你的标记为答案!谢谢整数有一个最大值。我猜你超过了这个值。不过,这只是一个猜测。你会建议我如何继续使用BigInteger?你能放一个演示poc吗?如果它有效,我会将你的标记为答案!谢谢Integer.MAX\u MAX\u VALUE
我认为是一个拼写错误。@Gendarme拼写错误修复。谢谢。Integer.MAX\u MAX\u VALUE
我认为是一个拼写错误。@Gendarme拼写错误修复。谢谢