func PopCountUInt64(i uint64) (c int) { i -= (i >> 1) & 0x5555555555555555 i = (i>>2)&0x3333333333333333 + i&0x3333333333333333 i += i >> 4 i &= 0x0f0f0f0f0f0f0f0f i *= 0x0101010101010101 return int(i >> 56) } func PopCountUInt32(i uint32) (n int) { i -= (i >> 1) & 0x55555555 i = (i>>2)&0x33333333 + i&0x33333333 i += i >> 4 i &= 0x0f0f0f0f i *= 0x01010101 return int(i >> 24) }