如何将超过 9 个字符的二进制字符串转换为整数?

how to convert binary strings longer than 9 characters to integers?

我正在开发一个程序,我试图使用这段代码将二进制字符串转换为整数:

int x = Integer.parseInt(arrayList.get(count), 2);
//arrayList is a collection of 30 character binary strings
//count is an incrementing integer used to choose which string to use while inside of a while loop

我已经用诸如“001010”之类的字符串测试了这个程序,但是用诸如“100000110000010100001111010110”之类的更大的字符串编译,但终端输出给我一个错误:

"@ java.lang.NumberFormatException.forInputString(NumberFormatException.java:(line number))

我该如何解决这个问题?

尝试 Long.parseLong 方法而不是 Integer.parseInt

你可以试试java.math.BigInteger.

String bin = "100000110000010100001111010110";
BigInteger bi = new BigInteger(bin, 2);
System.out.println(bi);

输出:

549536726

您也可以使用 Long.valueOf() 来完成。但是,对于 Long,您的二进制字符串最长可达 63 位,而对于 BigInteger,长度可以是任意多位。

String bin = "100000110000010100001111010110";
long biLong = Long.valueOf(bin, 2);
System.out.println(biLong);