我想比较一下在Java中实现的两种乘法方法,它们对大数字使用移位操作。因此,我需要足够大的BigIntegers。
由于我想逐位比较它们,因此在乘法运算中完全用于生成具有n位的BigIntegers的最佳方法是什么。
到目前为止,我的方法是:
byte[] bits = new byte[bitLength];
BigInteger number = new BigInteger(bits).flipBit(bitLength);
答案 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
}
}
换句话说,设置比你想要的高一个的位,然后减去一个得到一个使用所有低位的值。