int bitcount(unsigned x){
int b = 0;
while(x){
b++;
x &= (x - 1);
}
return b;
}
これが立っているビットを数える関数だって、言われなきゃわかんないよなあ。しかし、シフトしながら数えるより3倍くらい速かった。
こういう系のテクニックが重要なんだろうなあ。
int bitcount(unsigned x){
int b = 0;
while(x){
b++;
x &= (x - 1);
}
return b;
}
これが立っているビットを数える関数だって、言われなきゃわかんないよなあ。しかし、シフトしながら数えるより3倍くらい速かった。
こういう系のテクニックが重要なんだろうなあ。