あるビットマップがあって(ビット位置は0〜15を取る)、iビット目が1だったら0〜iの1の数を数えるアルゴリズム。 if (bitmap & ((unsigned short) 1 << i)) { /* Keep in `bitmap' only the bits 0..i-1. */ bitmap &= ((unsigned short) 1 << i) - 1; /* Add `summary->indx' and the number of bits set in `bitmap'. */ bitmap = (bitmap & 0x5555) + ((bitmap & 0xaaaa) >> 1); bitmap = (bitmap & 0x3333) + ((bitmap & 0xcccc) >> 2); bitmap = (bitmap & 0x0f0f) + ((bitmap