给定一个非负整数num,返回离num最近的,2的某次方
public class Code_near2power {
public static int tableSizeFor(int n){
n--;
// 将该数的最左边的1之后的位置都变成1
n |= n >>>1;
n |= n >>>2;
n |= n >>>4;
n |= n >>>8;
n |= n >>>16;
return (n <= 0 ? 1 : n+1); // 二进制形式的每一位都变成1后,再加上1,就得到了最最近的2的次方数
}
public static void main(String[] args) {
System.out.println(tableSizeFor(8));
}
}