Re[2]: Задачки на собеседовании
От: Slamin США  
Дата: 20.12.02 15:35
Оценка: 36 (4)
Здравствуйте, КАА, Вы писали:

КАА>Написать функцию, подсчитывающую количество битов в двойном слове.

КАА>Оптимально причем
Сразу оговорюсь придумал не я

unsigned int bitcount(unsigned int n) 
{
    n = (n&0x55555555) + ((n >> 1)&0x55555555);
    n = (n&0x33333333) + ((n >> 2)&0x33333333);
    n = (n&0x0F0F0F0F) + ((n >> 4)&0x0F0F0F0F);
    n = (n&0x00FF00FF) + ((n >> 8)&0x00FF00FF);
    n = n + (n >> 16);
    return n;
}
There are 10 types of people in the world, those who don't understand binaries, those who do, and those who understand not only binaries.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.