使用 Shift left 或 Shift right 计算对数底数 n [关闭]

2024-01-13

我有一个小问题。 谁知道我们如何计算日志 以 n 为底,使用 Shift_L 还是 Shift_R?

例如:对于 n=2 我们有这个解决方案:

int log(int n){
int res = 0;
while((n>>=1))
    res++;
return res;
}

您似乎不需要底数的对数b,但最大的整数n以便n <= log_b(x)。如果是这种情况,以下功能应该可以满足您的需求:

int intlog(double base, double x) {
    return (int)(log(x) / log(base));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Shift left 或 Shift right 计算对数底数 n [关闭] 的相关文章

随机推荐