diff options
Diffstat (limited to 'lib/libc/strings/ffs.c')
| -rw-r--r-- | lib/libc/strings/ffs.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/libc/strings/ffs.c b/lib/libc/strings/ffs.c new file mode 100644 index 00000000..3b836021 --- /dev/null +++ b/lib/libc/strings/ffs.c @@ -0,0 +1,14 @@ +int ffs(int i) +{ + if (i == 0) + return 0; + + int pos = 1; + unsigned int u = (unsigned int)i; + + while ((u & 1U) == 0U) { + u >>= 1; + pos++; + } + return pos; +} |
