备忘:Integer.valueOf抛出NumberFormatException

来源:互联网 发布:手机兼职软件 编辑:程序博客网 时间:2024/06/05 06:00

今天在做https://leetcode.com/problems/reverse-bits/ 时本来想先用Integer.toBinaryString转换然后再reverse再通过Integer.valueOf(str,2)来求值,但是发现Integer.valueOf在最高位为1的时候抛出java.lang.NumberFormatException。然后发现valueOf这个方法中的str并不按照二进制补码的方式来解析,它的负数通过str中前面的“-”号来表示,所以如果最高位为1就会溢出。


<pre name="code" class="java">                int i=Integer.MAX_VALUE+1;System.out.println(i);String s1=Integer.toBinaryString(i);System.out.println(s1);System.out.println(Integer.valueOf(s1,2));



会溢出。

0 0