public class Solution { public double Power(double base, int exponent) { if (exponent < 0) { base = 1 / base; exponent = -exponent; } double x = base; // 记录x^0, x^1, x^2 ... double ret = 1.0; while (exponent != 0) { if ((exponent&1) == 1) { ret *= x; // 二进制位数是1的,乘进答案。 } x *= x; exponent >>= 1; } return ret; } }