计算一个位串中1的个数

unsigned int v; //计算 v中1的个数
unsigned int c; // 结果存在c
for (c = 0; v; c++)
{
  v &= v - 1; 
}


这是Brian Kernighan给出的算法,v中有多少个1就迭代多少次。
这在1988年出版的K&R C语言教程的2-9练习中出现。2006年4月19日,Knuth指出,这个算法出现在Peter Wegner CACM 3 (1960), 322.的书中。

你可能感兴趣的:(C++,c,算法,C#,出版)