首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

计算一个位串中一的个数

2012-12-28 
计算一个位串中1的个数unsigned int v //计算 v中1的个数unsigned int c // 结果存在cfor (c 0 v c+

计算一个位串中1的个数

unsigned int v; //计算 v中1的个数unsigned int c; // 结果存在cfor (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.的书中。

热点排行