Problem: [201. 数字范围按位与](https://leetcode.cn/problems/bitwise-and-of-numbers-range/description/)
思路
按位与(取最高位进行比较)
解题过程
观察题目,里面比较的数只有2种情况,一个是最高位相同都为1,另一个是不同,一个为0,一个为1;通过比较发现规律,不同的,与的结果都是0,;相同的,只有二者最高位相同的1组合的结果,是另一种与的结果。
Code
class Solution {
public int rangeBitwiseAnd(int left, int right) {
int res = 0;
//21473648 二进制表示为31位
for(int i = 30; i >= 0; i--)
{
if( (left>>i & 1) != (right>>i & 1) )
break;
if((left>>i & 1) == 1)
{
res += 1 << i;
}
}
return res;
}
}