这是Java Api的错误吗?
int i = 0xD3951892;
System.out.println(i); // -745203566
String binString = Integer.toBinaryString(i);
int radix = 2;
int j = Integer.valueOf(binString, radix );
Assertions.assertThat(j).isEqualTo(i);
Run Code Online (Sandbox Code Playgroud)
我希望它毫无疑问是真的.但它抛出异常:
java.lang.NumberFormatException: For input string: "11010011100101010001100010010010"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.valueOf(Integer.java:556)
at com.zhugw.temp.IntegerTest.test_valueof_binary_string(IntegerTest.java:14)
Run Code Online (Sandbox Code Playgroud)
所以如果我有一个二进制字符串,例如11010011100101010001100010010010,我怎样才能在Java中得到它的十进制数(-745203566)?DIY?编写代码来实现下面的等式?

java ×1