需要注意base同时做平方运算,因为右移一位是平方的
public double Power(double base, int exponent) {
if(base == 0 && exponent == 0){
return 0;
}
if(exponent < 0){
base = 1 / base;
exponent = -exponent;
}
double res = 1.0;
while(exponent > 0){
if((exponent&1) == 1){
res *= base;
}
exponent >>= 1 ;
base *= base ;//base同时做平方运算
}
return res;
}
}