思路就是将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;
}