ffs算法

ffs函数 :类UNIX操作系统系统中的一个位运算函数。

int ffs(int i); 在i中,从最低位开始找出第一个设置位,返回第一个设置位的索引。如果i=0,返回0.

这里用到了分治的思想

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; }

你可能感兴趣的:(算法,unix)