我需要解释一下这条特定的线是如何工作的. 我知道这个函数计算1位的数量,但这条线究竟是如何清除最右边的1位?
int f(int n) { int c; for (c = 0; n != 0; ++c) n = n & (n - 1); return c; }
有人可以简单地向我解释一下或给出一些"证明"吗?
c++ algorithm bitcount
algorithm ×1
bitcount ×1
c++ ×1