C语言推断一个数是否为2的n次方

Posted gavanwanggw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言推断一个数是否为2的n次方相关的知识,希望对你有一定的参考价值。

//推断一个数是否为2的n次方
#include <stdio.h>
int is_two_n(int num)
{
	if ((num&(num - 1)))   //去掉一个1,推断是否为0
		return -1;
	return 1;
}
int main()
{
	int a;
	printf("请输入数字:");
	scanf_s("%d",&a);
	if (is_two_n(a)==1)
		printf("该数是2的次方\n");
	else
		printf("该数不是2的次方\n");
	return 0;
}

以上是关于C语言推断一个数是否为2的n次方的主要内容,如果未能解决你的问题,请参考以下文章

如何用C语言实现2的n次方

LeetCode 231:Power of Two

位运算判断一个数是否为2的n次方

C语言 计算1到N中数字1出现的个数

怎么巧判断一个整数是不是是2的n次方幂

面试题判断一个数是否为2的N次方---终极接法来啦