求二进制数中1的个数

    技术2022-05-20  64

    原创: http://blog.163.com/wupengzhi2005@126/blog/static/17101002201082971255213/ // 求二进制数中1的个数 #include  <stdio.h > // 方法1 int getCount1 ( unsigned  int n ) {      int cnt  =  0;      while (n )      {          // 取得二进制数的最右边的位        cnt  += n & 0x01;          // n右移一位        n >>= 1;      }      return cnt ; } // 方法2 int getCount1_ ( unsigned  int n ) {      int cnt  =  0;      while (n )      {         n  &=  (n - 1) ;         cnt ++;      }      return cnt ; } int main () {      int a ;     a  =  0x0;     printf ( "%d %d/n" , a , getCount1 (a ));     a  =  0x01;     printf ( "%d %d/n" , a , getCount1 (a ));     a  =  0x02;     printf ( "%d %d/n" , a , getCount1 (a ));     a  =  0x03;        printf ( "%d %d/n" , a , getCount1 (a ));     a  =  0xffffffff;     printf ( "%d %d/n" , a , getCount1 (a ));          a  =  0x0;     printf ( "%d %d/n" , a , getCount1_ (a ));     a  =  0x01;     printf ( "%d %d/n" , a , getCount1_ (a ));     a  =  0x02;     printf ( "%d %d/n" , a , getCount1_ (a ));     a  =  0x03;        printf ( "%d %d/n" , a , getCount1_ (a ));     a  =  0xffffffff;     printf ( "%d %d/n" , a , getCount1_ (a ));      return  0; }

     

     


    最新回复(0)