如它是否在 2^3 - 2^4、2^4 - 2^5 等范围内。返回的数字将是 EXPONENT 本身(减去偏移量)。
如何尽可能快速有效地完成这项工作?这个函数会在一个极度依赖速度的程序中被调用很多次。这是我当前的代码,但是因为它使用了 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);
}
非常感谢!