最佳答案

您可以修改一个标准bithack来检查一个数字是否是2的幂(小于2的幂的数字1都是1),特殊情况下检查零:

def allOnes(n):
    return ((n+1) & n == 0) and (n!=0)

print allOnes(255)
print allOnes(158)
print allOnes(0)
print allOnes(-1)
print allOnes(-2)

输出:
True
False
False
True
False

10-01 02:51