我正在寻找一种近似BigInteger
的对数基数2的快速方法。对大数字的速度和支持比精确结果更重要。我目前的建议是:
return BigInteger.valueOf(n.bitLength());
我高度假设这给出了最大2 ^(2 ^ 31-1)的数字的正确近似值。但它可以更快地完成吗?我不确定bitLength()
效率如何?
所有评论和建议都非常感谢。提前致谢。
更新:这不是重复,因为我一直在寻找执行操作的最快方法,其中准确性不是很大的问题。最后,我决定使用double
近似值。