Вычисление веса Хэмминга, также называемого popcount в Java?

Я не уверен, как перевести это с C ++ на Java.
Это функция, которая вычисляет вес Хэмминга.

/** This is popcount_3() from:
* http://en.wikipedia.org/wiki/Hamming_weight */
unsigned int popcnt32(uint32_t n) const
{
n -= ((n >> 1) & 0x55555555);
n = (n & 0x33333333) + ((n >> 2) & 0x33333333);
return (((n + (n >> 4))& 0xF0F0F0F)* 0x1010101) >> 24;
}

Более конкретно, я не знаю, что использовать вместо uint32_t,
и если я использую этот тип, что бы это ни было, я могу просто оставить остальные
код не изменился?

Спасибо

5

Решение

Это реализовано для вас в Integer.bitCount(int i)

18

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]