std::bitset одинаковой длины стандарт задает поразрядные операции &, | и ^, как для целых масок. Оператор Поразрядные операции над std::bitset в C++ инвертирует каждый бит одного набора.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpBtOp 302 of 696 menu
◀ ▶

Поразрядные операции над std::bitset в C++

Для двух std::bitset одинаковой длины стандарт задает поразрядные операции &, | и ^, как для целых масок.

Оператор ~ инвертирует каждый бит одного набора. Запишем два коротких набора, посчитаем пересечение и объединение и выведем оба результата:

#include <bitset> #include <iostream> std::bitset<4> left{0b1100}; std::bitset<4> right{0b1010}; std::bitset<4> both = left & right; std::bitset<4> either = left | right; std::cout << both << "\n"; std::cout << either << "\n";

Исключающее или оставляет 1 там, где биты разошлись. Запишем xor и инверсию левого набора:

#include <bitset> #include <iostream> std::bitset<4> left{0b1100}; std::bitset<4> right{0b1010}; std::bitset<4> diff = left ^ right; std::bitset<4> flipped = ~left; std::cout << diff << "\n"; std::cout << flipped << "\n";

Пусть std::bitset<4> a равен 3, а b - 5. Выведите a & b и a ^ b на двух строках.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить