Powered by Blogger.

write a program to get next nearest power of two (2^n) of a given number


function nextPowerOf2($n){

    $n -= 1; # greater than OR EQUAL TO n
    $shift = 1;
    while (($n+1) & $n): # n+1 is not a power of 2 yet
        $n |= $n >> $shift;
        $shift <<= 1;
 endwhile;
    return $n + 1;
}
echo nextPowerOf2(311);

No comments