求一个整数是否是2的n次方

2650阅读 0评论2013-07-16 zooyo
分类:LINUX

awk版:
  1. gawk '$1>1 && !and($1,$1-1){print "YES";i=1}END{if(!i)print "NO"}'

C版:
  1. #include <stdio.h>

  2. int is2n(unsigned int i){
  3.     return i>&& !(i&(i-1));
  4. }

  5. int main(void){
  6.     unsigned int i, c;
  7.     scanf("%d", &i);

  8.     switch(is2n(i)){
  9.         case 0:
  10.             printf("NO\n");
  11.             break;
  12.         case 1:
  13.             printf("YES\n");
  14.             break;
  15.     }

  16.     return 0;
  17. }
上一篇:自动从APNIC获取进行电信,网通分类,按省划分.多线程并发(完美版)
下一篇:taskset设置CPU亲和