我正在尝试使用代码从字符串“ 11010001110011000000000111111110”获取整数:
int n = Integer.parseInt("11010001110011000000000111111110", 2);
但我得到一个错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "11010001110011000000000111111110"
问题来源:Stack Overflow
仅仅是因为对于int数据类型,具有二进制内容的字符串表示的值太大。您需要解析为长数据类型。二进制字符串表示3519807998的值。整数最大值(Integer.MAX_VALUE)为:2147483647。尝试这个:
String binaryString = "11010001110011000000000111111110";
long n = Long.parseLong(binaryString, 2);
或者这样:
String binaryString = "11010001110011000000000111111110";
long lng = new BigInteger(binaryString, 2).longValue();
System.out.println(lng);
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。