获取具有n位的BigInteger的最大值

时间:2011-11-10 21:31:38

标签: java numbers

我想比较一下在Java中实现的两种乘法方法,它们对大数字使用移位操作。因此,我需要足够大的BigIntegers。

由于我想逐位比较它们,因此在乘法运算中完全用于生成具有n位的BigIntegers的最佳方法是什么。

到目前为止,我的方法是:

byte[] bits = new byte[bitLength];

BigInteger number = new BigInteger(bits).flipBit(bitLength);

1 个答案:

答案 0 :(得分:2)

这个怎么样:

import java.math.BigInteger;

public class Test
{
    public static void main(String[] args)
    {
        int bits = 3;

        BigInteger value = BigInteger.ZERO
                                     .setBit(bits)
                                     .subtract(BigInteger.ONE);
        System.out.println(value);  // Prints 7 == 111 in binary
    }
}

换句话说,设置比你想要的高一个的位,然后减去一个得到一个使用所有低位的值。