```
class Solution {
public:
double power(double x, int n) {
if (n==0) return 1;
double y = power(x, n>>1);
if (n%2==0) return y*y;
else return y*y*x;
}
double pow(double x, int n) {
if (n<0) return 1.0/power(x,-n);
else return power(x,n);
}
};
```

when input: x=1.0, n=-2147483648

It can't AC, but if using(n/2) raplace (n>>1), it will get AC, why?