Справочник по C/C++
bitset

Класс bitset поддерживает операции на множестве битов. Спецификация его шаблона имеет следующий вид.

template <size_t N> class bitset;

Здесь элемент N задает длину(в битах) битового множества. Класс имеет следующие конструкторы.

bitset();
bitset(unsigned long bits);
explicit bitset(const string &s, size_t i = 0, size_t num = npos);

Первая форма конструктора создает пустое битовое множеств(), Вторая форма создает битовое множество, биты которого установлены в соответствии с заданными значениями битов параметра bits. Третья форма создает битовое множество с помощью строки s, начиная с позиции i. Строка должна содержать только единицы и нули. Используется только num или s.size()-i значений (выбирается меньшее число). Константа npos - это значение, достаточно большое для описания максимальной длины строки s.

Для класса bitset определены операторы вывода << и >>.

Класс bitset содержит следующие функции-члены.

Функция-член Назначение
bool any() const; Возвращает истину, если в исследуемом битовом множестве установлен(т.е. равен 1) хотя бы один бит; в противном случае возвращает ложь
size_type count() const; Возвращает количество единичных битов
bitset<N> &flip(); Меняет на противоположное (переключает) состояние всех битов битового множества и возвращает значение *this
bitset<N> &flip(size_ti); Переключает состояние бита в позиции i используемого битового множества и возвращает значение *this
bool none() const; Возвращает истину, если в используемом битовом множестве не установлен ни один бит
bool operator !=(const bitset<N> &op2) const; Возвращает истину, если используемое битовое множество отличается от другого битового множества, заданного в правой части оператора ор2
bool operator == (const bitset<N> &op2) const; Возвращает истину, если используемое битовое множество совпадает с другим битовым множеством, заданным в правой части оператора ор2
bitset<N> &operator &= (const bitset<N> &op2); Выполняет логическую операцию И (AND) с каждым битом используемого битового множества и соответствующим битом битового множества в ор2 и оставляет результат в первом; возвращает значение *this
bitset<N> &operator ^= (const bitset<N> &op2); Выполняет логическую операцию исключающего ИЛИ (XOR) с каждым битом используемого битового множества и соответствующим битом битового множества в ор2 и оставляет результат в первом; возвращает значение * this
bitset<N> &operator |= (const bitset<N> &op2); Выполняет логическую операцию ИЛИ (OR) с каждым битом используемого битового множества и соответствующим битом битового множества в ор2 и оставляет результат в первом; возвращает значение *this
bitset<N> &operator ~=( ) const; Меняет на противоположное (переключает) состояние всех битов битового множества и возвращает результат
bitset<N> &operator <<= (size_t num); Сдвигает влево на num позиций каждый бит используемого битового множества, в котором и оставляет результат; возвращает значение *this
bitset<N> &operator >>= (size_t num); Сдвигает вправо на num позиций каждый бит используемого битового множества, в котором и оставляет результат; возвращает значение *this
reference operator[](size_type i); Возвращает ссылку на бит i в используемом битовом множестве
bitset<N> &reset(); Очищает все биты в используемом битовом множестве и возвращает значение *this
bitset<N> &reset(size_t i); Очищает бит в позиции i используемого битового множества и возвращает значение * this
bitset<N> &set(); Устанавливает все биты в используемом битовом множестве и возвращает значение * this
bitset<N> &set(size_t int val = 1); Устанавливает бит в позиции i используемого битового множества равным значению, заданному параметром val, и возвращает значение *this. Любое ненулевое значение параметра val принимается за 1
size_t size() const; Возвращает количество битов, которое может содержать данное битовое множество
bool test(size_t i); Возвращает состояние бита в позиции i
string to_string() const; Возвращает строку, которая содержит представление двоичного кода в используемом битовом множестве
unsigned long to_ulong() const; Преобразует данное битовое множество в длинное целое без знака



Реклама