有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

二进制字符串的java NumberFormatExceprion

我正在尝试从字符串“11010001110011000000001111110”获取int,代码为:

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

但我有一个错误:

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

共 (1) 个答案

  1. # 1 楼答案

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

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

    或者这样:

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