小编典典

是否有任何快速算法来计算全部为2的幂的数字的log2?

algorithm

是否有任何快速算法来计算所有2的幂的log2,例如:

log2(1), log2(2), log2(4), log2(1024), log2(4096)...

我正在考虑使用它来实现位集迭代。


阅读 370

收藏
2020-07-28

共1个答案

小编典典

假设你知道电话号码 必须 是2的功率,所以在二进制,它1下面有n 0这里n是多少,你所期待的。

如果您使用的是gcc或clang,则可以使用内置函数

—内置函数:int __builtin_ctz(无符号int x)

返回x中从最低有效位位置开始的尾随0位的数目。如果x为0,则结果不确定。

对于纯C实现,已经回答了

2020-07-28