def over_and_nearest_2_pow(n):
    """
    思路：通过位运算将最高位的1 覆盖到后面的所有位 上， 然后 加1
    寻找大于 n 的最近的 2的幂次方
    :param n: 基准数
    :return: 大于且最近的2的幂次方
    """
    # 跟位运算有关  python的int 动态存储范围可以超过int32
    assert n >= 0 and isinstance(n, int), "不是正整数"
    assert n >> 32 == 0, "超出int32 范围"
    n |= (n >> 16)
    n |= (n >> 8)
    n |= (n >> 4)
    n |= (n >> 2)
    n |= (n >> 1)
    n += 1
    return n