ffs, ffsl, ffsll − ワ ー ド の 中 で 最 初 に セ ッ ト さ れ て い る ビ ッ ト の 検 出
#include <strings.h>
int ffs(int i);
#define
_GNU_SOURCE
#include <string.h>
int ffsl(long int i);
int ffsll(long long int i);
ffs() 関 数 は 、 ワ ー ド i の 中 で 最 初 に セ ッ ト さ れ て い る (最 下 位 )ビ ッ ト の 位 置 を 返 す 。 最 下 位 ビ ッ ト の 位 置 は 1、 最 上 位 ビ ッ ト の 位 置 は 例 え ば 32 や 64 で あ る 。 ffsll() 関 数 と ffsl() 関 数 も 同 様 だ が 、 異 な っ た サ イ ズ の 引 数 を と る 。
こ れ ら の 関 数 は 、 最 初 に セ ッ ト さ れ て い る ビ ッ ト の 位 置 を 返 し 、 i の ど の ビ ッ ト も セ ッ ト さ れ て い な け れ ば 0 を 返 す 。
4.3BSD, POSIX.1-2001.
BSD シ ス テ ム で は <string.h> に プ ロ ト タ イ プ が あ る 。