Java Power of 2 nextPowerOfTwo(int x)

Here you can find the source of nextPowerOfTwo(int x)

Description

Returns the next largest power of two, or zero if x is already a power of two.

License

Apache License

Declaration

public static int nextPowerOfTwo(int x) 

Method Source Code

//package com.java2s;
/**/*  w w w.ja  va 2  s  .c  om*/
 * Copyright 2010 The PlayN Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

public class Main {
    /**
     * Returns the next largest power of two, or zero if x is already a power of two.
     */
    public static int nextPowerOfTwo(int x) {
        assert x < 0x10000;

        int bit = 0x8000, highest = -1, count = 0;
        for (int i = 15; i >= 0; --i, bit >>= 1) {
            if ((x & bit) != 0) {
                ++count;
                if (highest == -1) {
                    highest = i;
                }
            }
        }
        if (count <= 1) {
            return 0;
        }
        return 1 << (highest + 1);
    }
}

Related

  1. nextPowerOfTwo(int value)
  2. nextPowerOfTwo(int value)
  3. nextPowerOfTwo(int value)
  4. nextPowerOfTwo(int x)
  5. nextPowerOfTwo(int x)
  6. nextPowerOfTwo(int x)
  7. nextPowerOfTwo(int x)
  8. nextPowerOfTwo(int x)
  9. nextPowerOfTwo(int x)