今天我来分享一个判断一个数是否是2的n次方巧妙方法:
代码如下:

#include<stdio.h>
int main()
{
    int num;
    scanf("%d", &num);
    while (num)
    {

        if (((num) & (num - 1)) == 0)
            printf("%d", num);
        break;
    }
    system("pause");
    return 0;

}

在这里面,我们使用了num&(num-1)的运算。
当我们演算下会发现一个规律。


在这里我么你就会发现对于一个数,n&(n-1)会一直等于0。
所以我们可以将这个方法来判断一个数是不是2的n次方。

更多推荐

C语言小编程之判断一个数是否是2的n次方的巧妙方法