int hatena(int b)
{
 int n;
 n = (b >> 1) & 03333333333;
 n = b - n - ((n >> 1) & 03333333333);
 n = ((n + (n >> 3)) & 0707070707) % 077;
 return n;
}
答: 立っているビットの数を数える (e.g. 0110 ⇒ 2)