bitset: add next_set_bit() to find the next set bit

This commit is contained in:
S.J.R. van Schaik 2017-03-23 15:51:41 +00:00
parent 49c90e70f0
commit 69557fa814
2 changed files with 13 additions and 0 deletions

View file

@ -6,3 +6,4 @@
int is_bit_set(uint8_t *set, size_t n);
void set_bit(uint8_t *set, size_t n);
void clear_bit(uint8_t *set, size_t n);
size_t next_set_bit(uint8_t *set, size_t len);

View file

@ -30,3 +30,15 @@ void clear_bit(uint8_t *set, size_t n)
*word &= ~mask;
}
size_t next_set_bit(uint8_t *set, size_t len)
{
size_t n;
for (n = 0; n < len; ++n) {
if (is_bit_set(set, n))
return n;
}
return SIZE_MAX;
}