Intel

bit数え上げ2

d:id:tkuro:20061129 しつこく食い下がるような問題でもないんだけど、、、 x & (x-1) が 一番右の1のビットをカットすることを利用して、 int enum_bit(unsigned long x) { int counter = 0; while( x ) { counter++; x &= x-1; } return counter; } うーむ…

bit数え上げ

トリッキーなコードが早いとは限らないもので… 32bit の中の'1'bitの数を数え上げる、というコード。 おそらく普通なら以下のようにcounterを使うんじゃないかと思います。 counter版 enum_bits int enum_bits(unsigned long x) { int i; int counter = 0; f…