```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;
    }
};