Вопрос об алгоритме подсчета битовой популяции

      POPCNT_MULT = 0x0000000000002000000000100000000008000000000400000000020000000001;
POPCNT_MASK = 0x0001041041041041041041041041041041041041041041041041041041041041;
POPCNT_MODULO = 0x3F;

количество включенных битов (1) в "num" =((("num" * POPCNT_MULT) & POPCNT_MASK) % POPCNT_MODULO)

пример :

число = 3 ( 3 = 0011 )

количество включенных битов (1) в «num» = (((3 * POPCNT_MULT) & POPCNT_MASK) % POPCNT_MODULO) = 2


привет! Изучая алгоритмы, я нашел алгоритм с приведенной выше формулой.

Я хочу изучить приведенный выше алгоритм, но я не знаю, к чему относится алгоритм формулы...

Это может быть Хэммингвейт, а может и не быть,,,

0 ответов

Другие вопросы по тегам