如何找到一个大于等于n的2的幂次方的数

Posted 泡^泡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何找到一个大于等于n的2的幂次方的数相关的知识,希望对你有一定的参考价值。

package com;
/**
 * 如何找到一个大于等于n的2的幂次方的数
 */
public class Power2Test 
    public static void main(String[] args) 
        System.out.println(computeUpperPower2(9));
    

    private static final int MAXIMUM_CAPACITY = 1 << 30;

    public static final int computeUpperPower2(int val) 
        int n = val - 1;
        n |= n >>> 1;
        n |= n >>> 2;
        n |= n >>> 4;
        n |= n >>> 8;
        n |= n >>> 16;
        return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;
    

以上是关于如何找到一个大于等于n的2的幂次方的数的主要内容,如果未能解决你的问题,请参考以下文章

算法如何找到一个小于等于n的2的幂次方的数

算法如何找到一个小于等于n的2的幂次方的数

任意正整数拆分成2的指数幂(2的N次方)之和表示

c++2的幂次方

快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方!

HDU 5650