diff options
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/util.c b/util.c new file mode 100644 index 0000000000..b02d077cc3 --- /dev/null +++ b/util.c @@ -0,0 +1,18 @@ +#include "util.h" + +int bitpop(uint8_t bits) +{ + int c; + for (c = 0; bits; c++) + bits &= bits -1; + return c; +} + +int biton(uint8_t bits) +{ + int n = 0; + if (bits >> 4) { bits >>= 4; n += 4;} + if (bits >> 2) { bits >>= 2; n += 2;} + if (bits >> 1) { bits >>= 1; n += 1;} + return n; +} |