判断一个整数是否为2的幂 以及 上向2的幂扩展

Posted 阿汤的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断一个整数是否为2的幂 以及 上向2的幂扩展相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdint.h>

// 判断整数是否为2幂
/*
if (a & (a - 1))
{
    // not
}
else
{
    // yes
}
*/

uint32_t roundup_pow_of_two(const uint32_t x)
{
    if (x == 0){ return 0; }
    if (x == 1){ return 2; }
    uint32_t ret = 1;
    while (ret < x)
    {
        ret = ret << 1;
    }
    return ret;
}

int32_t main()
{
    uint32_t a = 0;
    while (scanf_s("%u",&a))
    {
        printf("%u\n", roundup_pow_of_two(a));
    }
    return 0;
}

 

以上是关于判断一个整数是否为2的幂 以及 上向2的幂扩展的主要内容,如果未能解决你的问题,请参考以下文章

如何迅速判断一个数是不是2的幂3的幂4的幂?

leetcode刷题笔记231 2的幂

给出一行C语言表达式,判断给定的整数是不是是一个2的幂

[LeetCode] 342. 4的幂 ☆(是否4 的幂)

判断一个整数是否是2的幂

递归:判断一个数是否是2的幂