Вопрос об алгоритме подсчета битовой популяции
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
привет! Изучая алгоритмы, я нашел алгоритм с приведенной выше формулой.
Я хочу изучить приведенный выше алгоритм, но я не знаю, к чему относится алгоритм формулы...
Это может быть Хэммингвейт, а может и не быть,,,