```class Solution {
public:
double Power(double base, int exponent) {
if(exponent == 0){
return 1.0;
}
if(exponent < 0){
base = 1 / base;
exponent = -exponent;
}
double a = 1.0;
while(exponent){
if(exponent & 1){
a = a * base;
}
base *= base;
exponent>>=1;
}
return a;
}
};