【发布时间】:2012-08-14 22:02:24
【问题描述】:
如何在不使用 C# 中的内置数学函数的情况下计算以 2 为底的对数?
我在一个应用程序中反复使用 Math.Log 和 BigInteger.Log 数百万次,它变得非常缓慢。
我对使用二进制操作来实现相同目的的替代方案感兴趣。请记住,如果有助于加快执行时间,我可以使用对数近似值。
【问题讨论】:
-
给定一个整数,除了最重要的一位之外,您可以将所有位归零,并且您已经获得了 2 的幂,它有一个微不足道的 2 对数。这是一个非常粗略的近似值。
-
有趣,我想知道找到最高有效位的最快方法是什么。
-
Levesque 有一个很好的解决方案。