计算表示任意基数中的整数所需的长度

Max*_*Max 5 math logarithm base radix

我有一个任意基数的整数表示的长度.假设长度为15,基数为36.然后,我想知道所述整数的表示在另一个任意基数中的持续时间.即,转换为基数2可能会导致长度为68.

我知道这是在下面的线条,但我不能完全了解我需要的地板和ceil,我得到的结果有点偏离:

length * log(fromBase) / log(toBase)
Run Code Online (Sandbox Code Playgroud)

Hig*_*ark 6

遵循类似Mathematica的语法,让我们

Log[b,n]
Run Code Online (Sandbox Code Playgroud)

表示n的基数b的对数.让我们来Log[n]代表自然对数n.

然后比例

Log[b1,n]/Log[b2,n]
Run Code Online (Sandbox Code Playgroud)

是不变的,等于

Log[b2]/Log[b1]
Run Code Online (Sandbox Code Playgroud)

此比率是b1从基数中的位数计算基数位数的乘数b2(反之亦然,如果你看到那样的话).对于问题中的示例,需要15位数的base-36数字

15*Log[36]/Log[2] == 77.5489
Run Code Online (Sandbox Code Playgroud)

基数为2位数.当然,这正是您在问题中所拥有的.您只需将最终答案四舍五入到下一个整数即可.

当然,我不确定为什么你似乎得到了一些结果.