C++
Алгоритм подсчета кол-ва бит в числе
смотрим функцию bit_set_cnt()
работает, но сам алгоримт неочевиден Ж:-)
/* подсчет кол-ва бит в числе */
#include <stdio.h>
int bit_set_cnt(unsigned long);
int main()
{
unsigned long i = 0xff;
while(i--)
printf ("i = %#x, set bit count = %d\n", i, bit_set_cnt(i));
return 0;
}
int bit_set_cnt(unsigned long i)
{
int cnt = 0;
while (i)
{
i &= i - 1;
cnt++;
}
return cnt;
}
