我正在开发一个程序,我试图使用这段代码将二进制字符串转换为整数:
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/