在操作系统实验中遇到了位图统计的问题,了解到了汉明重量的相关。
以下是处理32位长度的数组
int count_bit(int n)
{
register int x = n;
x = (x & 0x55555555) + ((x >> 1) & 0x55555555);
x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
x = (x & 0x0f0f0f0f) + ((x >> 4) & 0x0f0f0f0f);
x = (x * 0x01010101) >> 24