ビットを数えるならこれが最速アルゴリズムだぞ

bits = (bits & 0x55555555) + (bits >> 1 & 0x55555555);
bits = (bits & 0x33333333) + (bits >> 2 & 0x33333333);
bits = (bits & 0x0f0f0f0f) + (bits >> 4 & 0x0f0f0f0f);
bits = (bits & 0x00ff00ff) + (bits >> 8 & 0x00ff00ff);
return (bits & 0x0000ffff) + (bits >>16 & 0x0000ffff);

こんなものをループに条件分岐まで使って実装してる>>510は無能だわ
プログラミングを独学で学び始めた中学生レベルで進歩が止まってる