【问题标题】:NumberFormatExceprion for binary string二进制字符串的 NumberFormatException
【发布时间】:2020-03-16 21:17:19
【问题描述】:

我正在尝试使用代码从字符串“11010001110011000000000111111110”获取 int:

int n = Integer.parseInt("11010001110011000000000111111110", 2);

但我得到一个错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: "11010001110011000000000111111110"

【问题讨论】:

  • 由于数字只有32位,你可以使用parseUnsignedInt,但是你会得到一个负数。
  • 这就是我需要的。谢谢@david-conrad

标签: java parseint binary-string


【解决方案1】:

这只是因为二进制内容的字符串表示的值对于 int 数据类型来说太大了。您需要解析为 long 数据类型。二进制字符串表示值 3519807998。整数最大值 (Integer.MAX_VALUE) 为:2147483647。试试这个:

String binaryString = "11010001110011000000000111111110";
long n = Long.parseLong(binaryString, 2);

或者这样:

String binaryString = "11010001110011000000000111111110";
long lng = new BigInteger(binaryString, 2).longValue();
System.out.println(lng); 

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2013-11-09
    • 2013-10-22
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多