tholm@uvicctr.UUCP (Terrence W. Holm) (09/14/88)
EFTH MINIX report #42 - September 1988 - ffs(3) There follows an implementation of ffs(3) for MINIX. Please consider this public domain software. A "man" page is included. ---------------------------------------------------------- echo x - ffs.3 gres '^X' '' > ffs.3 << '/' XSUBROUTINES X ffs(3) - find first bit set X XINVOCATION X int ffs( word ) X int word; X XEXPLANATION X The index of the first bit set in <word> is returned. X XRESULTS X 0 : <word> is zero. X 1 : Right-most bit is set. X 2 : Right-most bit is clear, the next bit is set. X ... X 16 : Only the left-most bit is set, (for 16 bit int's). / echo x - ffs.c gres '^X' '' > ffs.c << '/' X/* ffs(3) X * X * Author: Terrence W. Holm Sep. 1988 X */ X X Xint ffs( word ) X int word; X X { X int i; X X if ( word == 0 ) X return( 0 ); X X for ( i = 1; ; ++i, word >>= 1 ) X if ( word & 1 ) X return( i ); X } / ---------------------------------------------------------- Edwin L. Froese uw-beaver!ubc-cs!mprg!handel!froese Terrence W. Holm uw-beaver!uvicctr!tholm