这里学到一个,进位为1的所有权重之积
class Solution {
public:
double myPow(double x, long long n) {
if(x==0||n==1) return x;
if(n<0){
n=-n;
x=1/x;
}
double res=1;
while(n!=0){
if((n&1)==1){//左进位为1的就要累乘下来
res=res*x;//最终结果是所有二进制数位为1的所有数之积
}
x=x*x;
n=n/2;
}
return res;
}
};