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

时间:2016-04-01 17:52:22

标签: java binary converter

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

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))

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以尝试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);

答案 1 :(得分:0)

尝试使用Long.parseLong方法代替Integer.parseInt