Here you can find the source of nextPowerOfTwo(final long nValue)
Parameter | Description |
---|---|
nValue | a long integer smaller than or equal to 2<sup>62</sup>. |
public static long nextPowerOfTwo(final long nValue)
//package com.java2s; /**//from w w w .ja v a 2 s .c o m * Copyright (C) 2014-2017 Philip Helger (www.helger.com) * philip[at]helger[dot]com * * 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 { /** * Return the least power of two greater than or equal to the specified value. * <p> * Note that this function will return 1 when the argument is 0. * * @param nValue * a long integer smaller than or equal to 2<sup>62</sup>. * @return the least power of two greater than or equal to the specified * value. */ public static long nextPowerOfTwo(final long nValue) { if (nValue == 0) return 1; long x = nValue - 1; x |= x >> 1; x |= x >> 2; x |= x >> 4; x |= x >> 8; x |= x >> 16; return (x | x >> 32) + 1; } }