gpt4 book ai didi

python - 如何计算不同基数中数字的位数?

转载 作者:太空狗 更新时间:2023-10-29 22:15:43 25 4
gpt4 key购买 nike

我正在处理不同基数(基数 10、基数 8、基数 16 等)的数字。我正在尝试计算每个数字中的字符数。

例子

Number: ABCDEF

Number of digits: 6

我知道基于对数的方法,但我遇到了一些问题。

  1. This Python script输出它未能正确计算出 1,000,000 个数字中的 3,969 个数字的位数。

  2. 我认为使用对数的方法可能会很慢

链接:

  • This C program一定很慢(如果我的数字很大怎么办?)。它也无法处理不同基数(例如,base-16)的数字。

  • 不是 this 的骗局因为那里的 OP 只询问 base-10


编辑:当然,我可以计算字符串的长度,但我最感兴趣的是,是否可以不用字符串约定 来进行计算。我想知道可以帮助完成此操作的算法,只需知道 source-base要转换为的 base

Edit2: source-basebase-10 并且要转换为的基数 可以是任何其他基地。


我们如何计算不同基数的数字位数?

如果我知道 base-10 中的数字,如何在不执行转换的情况下计算转换为 base-16(base-8 等)的相同数字中的位数

注意:一些 Python 或 C 代码将不胜感激

最佳答案

对数不应该真的很慢。您可以通过以下公式轻松计算任何底数的对数:logBaseN(x)=logBaseA(x)/logBaseA(N) - 您可以使用 ln(Base e = 2.718...) 或 logBase10 或任何你拥有的。所以你真的不需要一个程序,一个公式应该可以做到:

num_digets(N, base) = 1 + floor(log(N) / log(base))

N 是您的数字,base 是您希望该数字包含的基数。

更多解释请看这里: http://www.mathpath.org/concepts/Num/numdigits.htm

关于python - 如何计算不同基数中数字的位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com