Long.parseLong错误

时间:2015-06-11 11:37:19

标签: java string parsing binary long-integer

我试图从二进制字符串中解析潜在的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)
    ...

任何人都能解释一下吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

持有最大值的常数可以有2 ^ 63 - 1。

那么,你可以转换为具有2个基数的Long的最后一个String是: " 111111111111111111111111111111111111111111111111111111111111111"

如果您将尝试大于它的解析值,您将获得java.lang.NumberFormatException