位运算

二进制第一位“1”所在下标

def find_one(num):
    return num & (-num)
    # -num = ~num + 1


if __name__ == '__main__':
    print(find_one(10), bin(10))  # 2 -> 10(2)

二进制的第k位是否为0

def is_zero(num, k):
    return not ((num >> k) & 1)


if __name__ == '__main__':
    print(is_zero(10, 2), bin(10))

只出现一次的数字

最后更新于

这有帮助吗?