北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

立っているビットを数える

int bitcount(unsigned x){
int b = 0;
while(x){
b++;
x &= (x - 1);
}
return b;
}





これが立っているビットを数える関数だって、言われなきゃわかんないよなあ。しかし、シフトしながら数えるより3倍くらい速かった。



こういう系のテクニックが重要なんだろうなあ。