我正在使用java,我正在尝试使用不同基础(2,8和10)的数字。
所以,我问这个问题是将字符串格式的二进制数改为基数10中的数字
如11000000101010000000000000111111 / base 2
我尝试了Integer.parseInt(str,radix),但是我遇到了错误。 exepetion“”线程中的异常“main”java.lang.NumberFormatException:对于java.lang上的java.lang.NumberFormatException.forInputString(Unknown Source)java.lang.Integer.parseInt(Unknown Source)中的输入字符串:“110000001010100000000000000111111” .Integer.parseInt(未知来源)
答案 0 :(得分:5)
BigInteger提供了BigInteger(String,int)
构造函数,您可以在其中定义radix
。您可以简单地创建两个实例,一个用于初始值,另一个用于1
。您还需要使用BigInteger#add
。
完成此操作后,toString(radix)
还有一个BigInteger
函数,您可以在其中显示不同基数的结果。
public static void main(String[] args) {
BigInteger base = new BigInteger("11000000101010000000000111111111", 2);
BigInteger one = new BigInteger("1", 2);
BigInteger result = base.add(one);
System.out.println(result.toString(2));
}
输出
11000000101010000000001000000000