大家好,我坚持这个功课,任务是将两个BigInteger数字相乘。我应该使用基数k。但结果不对。有人可以给我一个暗示,我认为问题就是shiftleft。
public BigInteger multBaseKBit(BigInteger a, BigInteger b, int k) {
BigInteger result = new BigInteger("0");
BigInteger tmp = new BigInteger("0");
for (int i = 0; i < b.bitLength();) {
if (b.testBit(i)) {
tmp = a;
tmp = tmp.shiftLeft(i);
result = result.add(tmp);
System.out.println(result);
}
i = i + k;
}
return result;
}