publicdoublemyPow(double x,int n){// x为0时,直接返回0if(x ==0){return0;}// 定义结果resdouble res =1.0d;// 防止n的溢出,使用long类型的m替代long m = n;// 判断m是否为负数if(m <0){// 将x转换为(1/x)的(-m)次方
x =1/x;
m =-m;}// while循环累乘while(m >0){// 针对m出现奇数情况处理,使用res保存一个xif((m &1)!=0){
res *= x;}// x累乘自身
x *= x;// m右移一位
m >>=1;}// 返回结果return res;}