获取 大于等于给定的int值 的 最小的2的倍数

 思路就是将int的二进制,全都设置为1,然后加1,

比如 10的二进制为 1010 ,变成1111,之后再加1,二进制为10000,十进制为16

public int getMin2Pow(int cap) {
    int n = cap - 1;
    n |= n >>> 1;
    n |= n >>> 2;
    n |= n >>> 4;
    n |= n >>> 8;
    n |= n >>> 16;
    return (n < 0) ? 1 : (n >= Integer.MAX_VALUE) ? Integer.MAX_VALUE : n + 1;
}
发布了5 篇原创文章 · 获赞 0 · 访问量 206

猜你喜欢

转载自blog.csdn.net/liwei19911215/article/details/104212551