Exemple #1
0
void BitSet::set(uint32 bitIndex) {

    uint32 wordIdx = WORD_INDEX(bitIndex);
    expandTo(wordIdx);

    words[wordIdx] |= (((uint64)1) << WORD_OFFSET(bitIndex));
}
Exemple #2
0
void BitSet::flip(uint32 bitIndex) {

    uint32 wordIdx = WORD_INDEX(bitIndex);
    expandTo(wordIdx);

    words[wordIdx] ^= (((uint64)1) << WORD_OFFSET(bitIndex));

    recalculateWordsInUse();
}
Exemple #3
0
    BitSet& BitSet::clear(uint32 bitIndex) {

        uint32 wordIdx = WORD_INDEX(bitIndex);
        if (wordIdx < words.size()) {
            words[wordIdx] &= ~(((uint64)1) << WORD_OFFSET(bitIndex));

            recalculateWordsInUse();
        }
        return *this;
    }
Exemple #4
0
void BitSet::clear(uint32 bitIndex) {

    uint32 wordIdx = WORD_INDEX(bitIndex);
    if (wordIdx >= words.size())
        return;

    words[wordIdx] &= ~(((uint64)1) << WORD_OFFSET(bitIndex));

    recalculateWordsInUse();
}
Exemple #5
0
 bool BitSet::get(uint32 bitIndex) const {
     uint32 wordIdx = WORD_INDEX(bitIndex);
     return ((wordIdx < words.size())
         && ((words[wordIdx] & (((uint64)1) << WORD_OFFSET(bitIndex))) != 0));
 }