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



我不确定如何将此从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,如果我用那个类型,不管它是什么,我能留下剩下的吗代码不变?

谢谢

Integer.bitCount(int i)中为您实现

相关内容

  • 没有找到相关文章

最新更新