Integer.parseInt()函数 NumberFormatException异常问题
2017-03-02 12:20
435 查看
在做LeetCode题目时,遇到了以下问题。在执行如下代码时,报异常:
public class Test {
public static void main(String[] args) {
// 有符号数int的范围是[-2147483648,2147483647]
// 共32位
String num1 = "10000000000000000000000000000000";
// 将2进制转为10进制
Integer integer1 = Integer.parseInt(num1,2);
System.out.println(integer1);
}
}
异常分析如下:
Java中的int类型使用32位来表示,是有符号的,因此Java中int类型所能表示的范围为[-2147483648,2147483647],而num="10000000000000000000000000000000"表示的整数为2147483648,超出了int所能表示的最大整数。故抛出异常。
另:附上Integer.parseInt(int num, 2)函数所能解析的最大和最小数。
输出为:
2147483647
-2147483648
public class Test {
public static void main(String[] args) {
// 有符号数int的范围是[-2147483648,2147483647]
// 共32位
String num1 = "10000000000000000000000000000000";
// 将2进制转为10进制
Integer integer1 = Integer.parseInt(num1,2);
System.out.println(integer1);
}
}
异常分析如下:
Java中的int类型使用32位来表示,是有符号的,因此Java中int类型所能表示的范围为[-2147483648,2147483647],而num="10000000000000000000000000000000"表示的整数为2147483648,超出了int所能表示的最大整数。故抛出异常。
另:附上Integer.parseInt(int num, 2)函数所能解析的最大和最小数。
public class Test { public static void main(String[] args) { // 有符号数int的范围是[-2147483648,2147483647] // 共31位 String num1 = "1111111111111111111111111111111"; // 将2进制转为10进制 Integer integer1 = Integer.parseInt(num1,2); System.out.println(integer1); // 数字共23位 String num2 = "-10000000000000000000000000000000"; Integer integer2 = Integer.parseInt(num2, 2); System.out.println(integer2); } }
输出为:
2147483647
-2147483648
相关文章推荐
- 关于Integer.parseInt(str)报NumberFormatException异常问题
- 解决Integer.parseInt(String str)的异常(NumberFormatException)方法
- android中遇到java.lang.NumberFormatException: unable to parse 'null' as integer此类问题的原因及解决方法
- java.lang.NumberFormatException: For input string: "1" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang
- 将字符串转数字时没有捕获NumberFormatException 异常
- java中的java.lang.NumberFormatException异常
- java.lang.NumberFormatException: multiple points 异常
- EL表达式使用时出现NumberFormatException异常
- java.lang.NumberFormatException问题
- 连接db2数据库时NumberFormatException异常的解决方式
- java.lang.NumberFormatException: multiple points 异常
- Java异常之数字转换异常--java.lang.NumberFormatException
- Integer取值范围和NumberFormatException的解决
- 使用ajax删除后台table数据,提交后tomcat服务器报NumberFormatException异常,客户端报500错误。
- 关于异常的疑难解答:System.BadImageFormatException (32 位上编译的.net程序,在64位上跑的时候,经常碰到的问题)
- Caused by: java.lang.NumberFormatException: unable to parse '请输入第一个数字....' as integer
- 记录常遇到的异常 (NullPointerException,NumberFormatException,ClassCastException...)
- NumberFormatException异常
- Struts2访问验证码异常解决OgnlValueStack:64 - ..java.lang.NumberFormatException: For input string: "1494056190
- mybatis中SQL语句单双引号的问题java.lang.NumberFormatException: For input string: "Y"