看到
这篇文章(From那谁的博客)后,也写一下。。
分析2的幂值的特征,二进制如下:1,10,100,1000。。
都是1后面带n(n>=0)个0,因此可以写出如下判断函数(负数看成不是2的幂。。):
short is2power(int n)
{
if(n <= 0)
{
return 0;
}
return !(n & (n-1));
}
|
测试代码:
#include <stdio.h>
#define N 1000
int main()
{
int i;
for(i = 0;i < N;i ++)
{
if(is2power(i))
{
printf("%u ", i);
}
}
printf("\n");
return 0;
}
|
阅读(658) | 评论(0) | 转发(0) |