#define B0 (0x55555555) #define B1 (0x33333333) #define B2 (0x0F0F0F0F) #define B3 (0x001F001F) #define B4 (0x0000003F) int countbits(int x) { x = (x & B0) + ((x >> 1) & B0); x = (x & B1) + ((x >> 2) & B1); x = (x + (x >> 4)) & B2; x = (x + (x >> 8)) /*& B3 */ x = (x + (x >> 16)) & B4; return x; }