一个非常有用的算法---统计二进制数中1的个数

it2022-05-28  67

本人算法小菜,看见一个非常好的算法,统计一个数的二进制数的1的个数。觉得不错,与大家分享。

1 int fun(int x){ 2 int count = 0; 3 while(x){ 4 count++; 5 x = x &(x-1) 6 } 7 return count; 8 }

  下面是个人的一点解释(欢迎拍砖)

  比如一个数x的二进制后面几位是1000.

         x-1的二进制后面几位变成了     0111.

     二者&,变成了                            0000

而对于原数x的二进制数而言,就从右端减少了一个1。所以上述算法是计算二进制1的个数。

转载于:https://www.cnblogs.com/plxx/p/4605124.html

相关资源:数据结构—成绩单生成器

最新回复(0)