while (size-- > 0) { c = *addr++; while (c) { c &= c - 1; count++; } } return(count);