我试图从二进制字符串中解析潜在的Long值,但在尝试这样做时仍然会出错。
public String func1(String B, String C, String D)
{
long b = Long.parseLong(B, 2);
long c = Long.parseLong(C, 2);
long d = Long.parseLong(D, 2);
String value = Long.toString((b & c) | (b & d), 2);
return value;
}
Exception in thread "main" java.lang.NumberFormatException:
For input string: "1010101010101010101010101010101010101010/*....*/10101011"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
...
任何人都能解释一下吗? 谢谢!
答案 0 :(得分:2)
持有最大值的常数可以有2 ^ 63 - 1。
那么,你可以转换为具有2个基数的Long的最后一个String是: " 111111111111111111111111111111111111111111111111111111111111111"
如果您将尝试大于它的解析值,您将获得java.lang.NumberFormatException