如何找到一个大于等于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的幂次方的数的主要内容,如果未能解决你的问题,请参考以下文章