I am reading a program which contains the following function, which is
int f(int n) { int c; for (c=0;n!=0;++c) n=n&(n-1); return c; }
I don't quite understand what does this function intend to do?
Could it be it tries to return the number of significant bits in n? (Haven't thought through it completely...)