剑指Offer08 二进制中1的个数
Posted Juntaran
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer08 二进制中1的个数相关的知识,希望对你有一定的参考价值。
1 /************************************************************************* 2 > File Name: 08_NumOf1InBinary.c 3 > Author: Juntaran 4 > Mail: [email protected] 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的个数的主要内容,如果未能解决你的问题,请参考以下文章