Алгоритм подсчета кол-ва бит в числе


ramok аватар

ramok - Posted on 03 Март 2006

смотрим функцию 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;
}
0
Ваша оценка: Ничего

Мда, и это ж насколько должно быть нечего писать...
давай ещё программки с ioccc постить будем... :)

не давайте. пощу то что интересно мне Ж:-)
--
Signature invent in progress 19% #.........