-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbitmask.cpp
41 lines (33 loc) · 1.04 KB
/
bitmask.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "bitmask.hpp"
BitMask::BitMask() : m_bits(0) { }
BitMask::BitMask(const BitMask& original) {
//Copia de la mascara de bits que se manda
m_bits = original.getMask();
}
//Metodo de acceso, retorna la mascara de bits
uint32_t BitMask::getMask() const {
return m_bits;
}
//Limpia la mascara de bits
void BitMask::Clear() {
m_bits = 0;
}
//Devuelve verdadero si bit en pos = 1, si no falso.
bool BitMask::getBit(int index) const {
//retorna un valor boleano de la operación and, indica si hay un bit en esa posición
return (m_bits & (1 << index)) != 0;
}
// coloca un 1 en la posicion indicada
void BitMask::setBit(int index) {
m_bits = m_bits | (1 << index);
}
// Establece el bit en la posición especificada en 1 o 0 (verdadero o falso).
void BitMask::setBit(int index, bool value) {
// Se puede definir este metodo con dos metodos anteriores
if (value) setBit(index);
else clearBit(index);
}
//Limpia el bit con el complemento de index
void BitMask::clearBit(int index) {
m_bits = m_bits & ~(1 << index);
}