201
题目描述:
给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。
示例:
解答:
class Solution:
def rangeBitwiseAnd(self, m: int, n: int) -> int:
'''
0 与谁与都为 0
因为 只要有一个0,那么无论有多少个 1都是 0
比如:从 5到 7
5:0 1 0 1
6:0 1 1 0
7:0 1 1 1
-----------
0 1 0 0
代码如下:
i=0
while m!=n:
m>>=1
n>>=1
i+=1
return m<<i
'''
while n>m:
n&=(n-1)
return n
231
题目描述:
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例