ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
17 мая
57110 Топик полностью
Alex03 (19.04.2006 20:14, просмотров: 1) ответил volkanaft на KeyWord = "подсчет количества бит"...(Вообще:"быстрей таблицы зверя нет")
Про таблицу далеко не факт, тем более что Вы сами алгоритм привели! :) Т.е. уже на 32-х разрядных машинах алгоритм выглядит вот так:
v = (v & 0x55555555) + ((v >> 1) & 0x55555555);
v = (v & 0x33333333) + ((v >> 2) & 0x33333333);
v = (v & 0x0f0f0f0f) + ((v >> 4) & 0x0f0f0f0f);
v = (v & 0x00ff00ff) + ((v >> 2) & 0x00ff00ff);
v = (v & 0x0000ffff) + ((v >> 2) & 0x0000ffff);
return v;
И в ряде случаев (архитектура/память/кэши) это быстрее чем по таблице. Применительно к ARM-у по моим прикидкам эти 6 строк команд в 20 выльются.