首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求教,最容易的判断一个数是否是2的幂次

2012-08-01 
求教,最简单的判断一个数是否是2的幂次比如,如何判断一个数是2 4 8 16 32 64 128 256 。。。。[解决办法]用for

求教,最简单的判断一个数是否是2的幂次
比如,如何判断一个数是2 4 8 16 32 64 128 256 。。。。

[解决办法]
用for循环 再用个break 可以实现
[解决办法]
num&(num-1) 是否为0
[解决办法]
看这个数的二进制表示中是否只有一个"1",是则表明该数是2的幂次,否则不是
[解决办法]
#include<stdio.h>
void main()
{
float i,m;
printf("输入一个整数:");
scanf("%f",&i);
for(;;)
{ m=i;
if( (i=m/2) !=(int) i ) { printf("否"); break; }
if( (i=m/2) ==1 ) { printf("是"); break; }
}
printf("\n");
}//第一次发帖。
[解决办法]

C/C++ code
if ((x > 0) && (0 == (x & (x - 1))))
[解决办法]
C/C++ code
main(){    int i;    int count = 0;    printf("请输入一个数字:");    scanf("%d", &i);    if (i<=0)    {        printf("该数不是2的幂。\n");        return;    }    while(i)    {        if(i&1)  count++;        i>>1;    }    if (count == 1)    {        printf("该数是2的幂\n");    }    else    {        printf("该数不是2的幂。\n");    }    return;} 

热点排行