最初の質問は次のとおりです。
1回の操作でビット列の最初のアクティブビットの位置を取得することは可能ですか?
もちろん2番目:それを行う方法は?
前もって感謝します。
整数の最上位ビットを取得するのが単一の命令であるプロセッサがあると聞きましたが、どれを指定することはできません。そのようなプロセッサがあったとしても、任意の2進数ではなく、整数の最上位ビットしか取得できません。これは、あなたの質問の場合のようです。
長いビットシーケンスの場合、各ビットをチェックするよりも良いオプションはないと思いますが、短いビットシーケンスの場合は、最高のビット値を事前に計算できます(たとえば、32768までのすべての数値の最高のビットを格納する配列があります)。単にその配列から値を取得して、最大15ビットのシーケンスすべてに必要な答えを得るよりも。