package com;
/**
* 如何找到一个大于等于n的2的幂次方的数
*/
public class Power2Test {
public static void main(String[] args) {
System.out.println(computeUpperPower2(9));
}
private static final int MAXIMUM_CAPACITY = 1 << 30;
public static final int computeUpperPower2(int val) {
int n = val - 1;
n |= n >>> 1;
n |= n >>> 2;
n |= n >>> 4;
n |= n >>> 8;
n |= n >>> 16;
return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;
}
}