【发布时间】:2017-11-02 11:24:50
【问题描述】:
假设它是 2 的幂,有没有一种有效的方法来找到一个数字的 log2。我知道有一个明显的方法,比如有一个表或
for (log2=0;x!=1;x>>=1,log2++);
但我想知道是否有更高效/优雅的方式。
【问题讨论】:
-
你检查过数学库吗?我敢打赌有一些有效的功能
-
log2(x) 怎么样,其中 x 是您要查找 2 对数的数字?
-
但是你可能真的只是想要来自
<cmath>的std::log2()。如果您可以使用分析器证明瓶颈,则只需担心尝试找到更有效的方法。 -
@RichardCritten - 但是您如何索引该查找表?
标签: c++ algorithm math logarithm