public static int reverseBits(int n) {
return Integer.parseInt("00100110000000000000000000000000");
}
以上代码执行会报异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: "00100110000000000000000000000000"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:583)
at java.lang.Integer.parseInt(Integer.java:615)
at Main.reverseBits(Main.java:404)
at Main.main(Main.java:46)
原因是数值转换时发生错误,int类型最大位数是10位,所以导致转换失败。
解决方法是讲转换代码改为:
return Integer.parseUnsignedInt("00100110000000000000000000000000", 2);
本文分析了Java代码中Integer.parseInt导致的数值转换异常,重点在于解释10位int类型限制和如何使用Integer.parseUnsignedInt方法正确处理大整数二进制字符串。通过实例代码演示了问题与解决方案。

4280

被折叠的 条评论
为什么被折叠?



