man.bsd.lv manual page server

Manual Page Search Parameters

FFS32(3) Library Functions Manual FFS32(3)

ffs32, ffs64, fls32, fls64find first or last bit set

#include <sys/bitops.h>

int
ffs32(uint32_t n);

int
ffs64(uint64_t n);

int
fls32(uint32_t n);

int
fls64(uint64_t n);

The () and () functions find the first bit set in n and return the index of that bit. Conversely, the () and () functions find the last bit set in n, returning the index of the bit.

The search always starts from the bit 1 (the least significant bit). If the argument n is zero, each function returns zero.

The described functions are implemented as functions in the <sys/bitops.h> header. The standard C library includes a more portable ffs(3) for user applications.

In the following example f = 3 and l = 7:

uint32_t n = 0x44;	/* 01000100 */
int f, l;

f = ffs32(n);
l = fls32(n);

bitops(3), bits(3), bitstring(3), ffs(3), setbit(9)

These functions first appeared in NetBSD 5.0.

April 8, 2011 NetBSD-9.2