public
class
Solution {
public
double
Power(
double
base,
int
exponent) {
int
flag=exponent>=
0
?
1
:
0
;
double
ret=
1
;
exponent=Math.abs(exponent);
while
(exponent!=
0
){
//取b二进制的最低位,判断和1是否相同,相同返回1,否则返回0,可用于判断奇偶
if
((exponent&
1
)!=
0
)
ret=ret*base;
base=base*base;
exponent=exponent>>
1
;
//把b的二进制右移一位,即去掉其二进制位的最低位
}
return
flag==
1
?ret:(
1.0
/ret);
}
}
联系客服