2 ^ 3〜2 ^ 4、2 ^ 4〜2 ^ 5などの範囲内にあるかどうかのように。返される数値は、指数自体(オフセットを差し引いたもの)になります。
どうすればこれを可能な限り迅速かつ効率的に行うことができますか?この関数は、速度に大きく依存するプログラムで頻繁に呼び出されます。これは私の現在のコードですが、forループを使用しているため非効率的です。
static inline size_t getIndex(size_t numOfBytes)
{
int i = 3;
for (; i < 32; i++)
{
if (numOfBytes < (1 << i))
return i - OFFSET;
}
return (NUM_OF_BUCKETS - 1);
}
どうもありがとうございます!