2^(a+b) = 2^a * 2^b
und mein gewünschter Exponent ist ja größer als ein int
final BigInteger max = BigInteger.valueOf(Integer.MAX_VALUE);
while (exponent.compareTo(BigInteger.ZERO) > 0) {
BigInteger currExp = max;
if (exponent.compareTo(currExp) < 0) {
currExp = exponent;
}
exponent = exponent.subtract(currExp);
base = base.pow(currExp.intValue());
}