判断一个整数是不是2的整数次方。

解:程序:

#include<stdio.h>

int count(int t)

{

int count=0;

while (t)

{

count++;

t=t&(t-1);

}

return count;

}

int main()

{

int num,ret=0;

printf("请输入一个整数:");

scanf("%d", &num);

ret = count(num);

if (ret == 1)

{

printf("是2的整数次方!\n");

}

else

{

printf("不是2的整数次方!\n");

}

return 0;

}

结果1

请输入一个整数:8

2的整数次方!

请按任意键继续. . .

结果2

请输入一个整数:7

不是2的整数次方!

请按任意键继续. . .