給定范圍 [m, n],其中 0 <= m <= n <= 2147483647,返回此范圍內所有數字的按位與(包含 m, n 兩端點)。
示例 1:
輸入: [5,7]
輸出: 4
示例 2:
輸入: [0,1]
輸出: 0
代碼
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int d = INT_MAX;
while ((m & d) != (n & d)) {
d <<= 1;
}
return m & d;
}
};