<分区>
我有一个数字的二进制表示,想将它转换为长整数(我有 Java 8)
public class TestLongs {
public static void main(String[] args){
String a = Long.toBinaryString(Long.parseLong("-1")); // 1111111111111111111111111111111111111111111111111111111111111111
System.out.println(a);
System.out.println(Long.parseLong(a, 2));// ??? but Long.parseUnsignedLong(a, 2) works
}
此代码导致 线程“main”中的异常 java.lang.NumberFormatException:对于输入字符串:“1111111111111111111111111111111111111111111111111111111111111111”
在 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
111111111111111111111111111111111111111111111111111111111111111
在 java.lang.Long.parseLong(Long.java:592)
这里有什么问题?为什么 Long.parseLong(a, 2) 不起作用?