static inline int __ffs(int x)
{
int r = 0;
if (!x)
return 0;
if (!(x & 0xffff)) {
x >>= 16;
r += 16;
}
if (!(x & 0xff)) {
x >>= 8;
r += 8;
}
if (!(x & 0xf)) {
x >>= 4;
r += 4;
}
if (!(x & 3)) {
x >>= 2;
r += 2;
}
if (!(x & 1)) {
x >>= 1;
r += 1;
}
return r;
}
本文介绍了一个用于查找整数中最右侧非零位位置的位操作函数__ffs。该函数通过逐步右移并检查特定位是否为零来确定最低有效位的位置。此方法提高了查找效率,并适用于多种应用场景。
6510

被折叠的 条评论
为什么被折叠?



