其实在一个range内 只要看两个边界就可以了
一定是在高位的连续几位会都相同 之后的几位会vary 后面一定会全是0 所以一直把m n右移 计数 然后知道他们完全相同
完全相同之后再后面补足之前计数的个数0
public class Solution {
public int rangeBitwiseAnd(int m, int n) {
int diffNum = 0;
while ( m != n ){
m >>= 1;
n >>= 1;
diffNum ++;
}
return n << diffNum;
}
}