这些位操作在做什么

时间:2019-05-09 21:05:02

标签: c++

以下是涉及位运算的功能。我不太清楚这个功能在做什么

int NumberOfSetBits( int i )
{
    i = i - ((i >> 1) & 0x55555555);
    i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
    return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
}

编辑: 在How does this algorithm to count the number of set bits in a 32-bit integer work?

中有详细的说明

0 个答案:

没有答案