计算汉明重量,在Java中也称为popcount?

use*_*942 5 c++ java porting nlp computer-vision

我不知道如何将其从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;
}
Run Code Online (Sandbox Code Playgroud)

更具体地说,我不知道使用什么而不是uint32_t,如果我使用该类型,我可以保持其余代码不变吗?

谢谢

zch*_*zch 18

它是为你实现的 Integer.bitCount(int i)