Работа с битовыми множествами в C++ с классом bitset
bitset - это класс в стандартной библиотеке C++, который предоставляет удобный способ работы с битами в памяти. Он представляет собой контейнер, который состоит из набора битов, каждый из которых может иметь значение 0 или 1.
Пример создания объекта класса bitset:
#include
#include
int main()
{
std::bitset<8> bits; // создаем объект bitset с 8 битами
std::cout << bits << std::endl; // выводим значение в двоичном формате ("00000000")
return 0;
}
В данном примере создается объект bitset с 8 битами. По умолчанию все биты имеют значение 0. С помощью оператора << значение объекта выводится в двоичном формате.
Пример установки и сброса битов:
#include
#include
int main()
{
std::bitset<8> bits; // создаем объект bitset с 8 битами
bits.set(3); // устанавливаем 3-й бит (отсчет от 0)
bits.reset(2); // сбрасываем 2-й бит
std::cout << bits << std::endl; // выводим значение в двоичном формате ("00001000")
return 0;
}
В данном примере устанавливается 3-й бит с помощью метода set() и сбрасывается 2-й бит с помощью метода reset(). Значение объекта выводится в двоичном формате.
Пример работы с операциями bitwise:
#include
#include
int main()
{
std::bitset<8> bits1("00101100"); // создаем объект bitset с 8 битами и задаем начальное значение
std::bitset<8> bits2("01010101"); // создаем второй объект bitset с 8 битами и задаем начальное значение
std::bitset<8> result; // создаем третий объект bitset с 8 битами
result = bits1 | bits2; // выполняем логическую операцию "ИЛИ" между первым и вторым объектами bitset
std::cout << result << std::endl; // выводим результат в двоичном формате ("01111101")
return 0;
}
В данном примере создаются два объекта bitset с начальными значениями. Затем выполняется операция "ИЛИ" с помощью оператора | между этими объектами. Результат сохраняется в третий объект bitset. Результат объединения битов выводится в двоичном формате.
Таким образом, класс bitset в стандартной библиотеке C++ предоставляет удобный способ работы с битами в памяти. Он позволяет создавать объекты с заданным количеством битов, устанавливать и сбрасывать биты, а также выполнять операции bitwise.