Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

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

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





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



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