是否有任何快速算法来计算所有2的幂的log2,例如:
log2(1), log2(2), log2(4), log2(1024), log2(4096)...
我正在考虑使用它来实现位集迭代。
假设你知道电话号码 必须 是2的功率,所以在二进制,它1下面有n 0这里n是多少,你所期待的。
1
0
n
如果您使用的是gcc或clang,则可以使用内置函数
—内置函数:int __builtin_ctz(无符号int x) 返回x中从最低有效位位置开始的尾随0位的数目。如果x为0,则结果不确定。
—内置函数:int __builtin_ctz(无符号int x)
返回x中从最低有效位位置开始的尾随0位的数目。如果x为0,则结果不确定。
对于纯C实现,已经回答了