bitset: add next_set_bit() to find the next set bit
This commit is contained in:
parent
49c90e70f0
commit
69557fa814
2 changed files with 13 additions and 0 deletions
|
@ -6,3 +6,4 @@
|
||||||
int is_bit_set(uint8_t *set, size_t n);
|
int is_bit_set(uint8_t *set, size_t n);
|
||||||
void set_bit(uint8_t *set, size_t n);
|
void set_bit(uint8_t *set, size_t n);
|
||||||
void clear_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);
|
||||||
|
|
|
@ -30,3 +30,15 @@ void clear_bit(uint8_t *set, size_t n)
|
||||||
|
|
||||||
*word &= ~mask;
|
*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;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue