code: public static int ceilingPowerOf2(final int n) {
      if (n <= 1) { return 1; }
      final int topPwrOf2 = 1 << 30;
      return (n >= topPwrOf2) ? topPwrOf2 : Integer.highestOneBit((n - 1) << 1);
    }
docs: Computes the ceiling power of 2 within the range [1, 2^30]. This is the smallest positive power
  of 2 that equal to or greater than the given n and equal to a mathematical integer.
  
  <p>For:
  <ul>
  <li>n &le; 1: returns 1</li>
  <li>2^30 &le; n &le; 2^31 -1 : returns 2^30</li>
  <li>n == a power of 2 : returns n</li>
  <li>otherwise returns the smallest power of 2 greater than n and equal to a mathematical
  integer</li>
  </ul>
  
  @param n The input argument.
  @return the ceiling power of 2.