Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /* ffs -- Find the first bit set in the parameter
  2.  
  3. @deftypefn Supplemental int ffs (int @var{valu})
  4.  
  5. Find the first (least significant) bit set in @var{valu}.  Bits are
  6. numbered from right to left, starting with bit 1 (corresponding to the
  7. value 1).  If @var{valu} is zero, zero is returned.
  8.  
  9. @end deftypefn
  10.  
  11. */
  12.  
  13. int
  14. ffs (register int valu)
  15. {
  16.   register int bit;
  17.  
  18.   if (valu == 0)
  19.     return 0;
  20.  
  21.   for (bit = 1; !(valu & 1); bit++)
  22.         valu >>= 1;
  23.  
  24.   return bit;
  25. }
  26.  
  27.