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

标签 java binary converters

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

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

我该如何解决这个问题?

最佳答案

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

关于java - 如何将超过 9 个字符的二进制字符串转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36362772/

相关文章:

linux - 使用 FFmpeg 转换器将 .mov 格式从纵向模式转换为横向模式

ios - Swift - 我如何将常规 XML 文件转换为 .plist XML 文件

java - 为 SSL 套接字启用哪些密码套件?

java - 我可以使用 sql INSERT 语句插入 java 实体并稍后使用 JPQL 检索它吗?

algorithm - 查找具有相同 1 位数的下一个较小数字的有效方法

algorithm - 大多数二进制组合来自 4 位,每位只有一个变化

java - 具有十六进制输入的 BigInteger NumberFormatException

Java:抛出异常可以抛出异常吗?

c++ - 为什么这个 bitset 收集算法不起作用?

c++ - 从 C++ 库转换文件