22
設定されている最下位ビットの位置
整数に設定されている最下位ビットの位置を決定する効率的な方法を探しています。たとえば、0x0FF0の場合は4になります。 簡単な実装は次のとおりです。 unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately unsigned pos = 0; while (!(value & 1)) { value >>= 1; ++pos; } return pos; } それからいくつかのサイクルを絞る方法はありますか? (注:この質問は、そのようなことを楽しむ人のためのものであり、xyzoptimizationは悪だと言われるためのものではありません。) [編集] アイデアをありがとう!他にもいくつかのことを学びました。涼しい!