Java Number Round roundUpToPowerOfTwo(int i)

Here you can find the source of roundUpToPowerOfTwo(int i)

Description

Returns the smallest power of two >= its argument, with several caveats: If the argument is negative but not Integer.MIN_VALUE, the method returns zero.

License

Apache License

Declaration

public static int roundUpToPowerOfTwo(int i) 

Method Source Code

//package com.java2s;
/*//from  w  w w. ja  v a2 s .c o m
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You 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 smallest power of two >= its argument, with several caveats:
     * If the argument is negative but not Integer.MIN_VALUE, the method returns
     * zero. If the argument is > 2^30 or equal to Integer.MIN_VALUE, the method
     * returns Integer.MIN_VALUE. If the argument is zero, the method returns
     * zero.
     * @hide
     */
    public static int roundUpToPowerOfTwo(int i) {
        i--; // If input is a power of two, shift its high-order bit right.

        // "Smear" the high-order bit all the way to the right.
        i |= i >>> 1;
        i |= i >>> 2;
        i |= i >>> 4;
        i |= i >>> 8;
        i |= i >>> 16;

        return i + 1;
    }
}

Related

  1. roundUpToNearestEightBytes(long result)
  2. roundUpToNearestPowerOfTwoIfGreaterThanZero(final int value)
  3. roundUpToPowerOf2(int number)
  4. roundUpToPowerOf2(long val)
  5. roundUpToPowerOf2Factor(long val, long factor)
  6. roundUpToPowerOfTwo(int p_151236_0_)
  7. roundUpToPowerOfTwo(int v)
  8. roundUpToPowerOfTwo(int x)
  9. roundUpToTheNextHighestPowerOf2(int v)