题目: 如何判断一个数是否是2的n次方
思路:当一个数为2的n 次方时,整个二进制数,只有本位是1 其他位为0,如果我们给这个数减一,那么本位变为0 其他位全部变成1;我们可以通过&运算, 如果为0即为2的n次方;
class Solution:
def is2n(self, n):
if n == 0:
return True
res = n & (n-1)
return res==0
if __name__ == "__main__":
so = Solution()
n = 15
res = so.is2n(n)
print(res)