如何使用biginteger操作二进制值

时间:2016-03-29 11:29:05

标签: java binary biginteger

我正在使用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(未知来源)

1 个答案:

答案 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