首页 > 代码库 > 剑指Offer08 二进制中1的个数

剑指Offer08 二进制中1的个数

 1 /************************************************************************* 2     > File Name: 08_NumOf1InBinary.c 3     > Author: Juntaran 4     > Mail: JuntaranMail@gmail.com 5     > Created Time: 2016年08月29日 星期一 20时40分15秒 6  ************************************************************************/ 7  8 #include <stdio.h> 9  10 int NumberOf1_1(int n)11 {12     int count = 0;13     int flag = 1;14     while (flag < n)15     {16         if (n & flag)17             count ++;18         flag = flag << 1;19     }20     return count;21 }22 23 int NumberOf1_2(int n)24 {25     int count = 0;26     while (n)27     {28         ++ count;29         n = (n - 1) & n;30     }31     return count;32 }33 34 int main()35 {36     int ret1 = 0;37     int ret2 = 0;38     39     int n = 5;40     ret1 = NumberOf1_1(n);41     ret2 = NumberOf1_2(n);42     printf("ret1 is %d\n", ret1);43     printf("ret2 is %d\n", ret2);44 }

 

剑指Offer08 二进制中1的个数