23 lines
374 B
C++
23 lines
374 B
C++
#include <bitarray.h>
|
|
|
|
void BitArray::set(int index, bool value)
|
|
{
|
|
check(index);
|
|
|
|
if (value) {
|
|
_bits |= 1 << index;
|
|
} else {
|
|
_bits &= ~(1 << index);
|
|
}
|
|
}
|
|
|
|
int BitArray::last_set() const
|
|
{
|
|
/* x86 clz isn't defined when v==0 */
|
|
if (_bits == 0) {
|
|
return -1;
|
|
} else {
|
|
return count() - 1 - __builtin_clz(_bits);
|
|
}
|
|
}
|