std::bitset<N>::operator&=,|=,^=,~
Материал из cppreference.com
(1) | ||
bitset& operator&=(const bitset& other ); | (до C++11) | |
bitset& operator&=(const bitset& other )noexcept; | (начиная с C++11) (constexpr начиная с C++23) | |
(2) | ||
bitset& operator|=(const bitset& other ); | (до C++11) | |
bitset& operator|=(const bitset& other )noexcept; | (начиная с C++11) (constexpr начиная с C++23) | |
(3) | ||
bitset& operator^=(const bitset& other ); | (до C++11) | |
bitset& operator^=(const bitset& other )noexcept; | (начиная с C++11) (constexpr начиная с C++23) | |
(4) | ||
bitset operator~()const; | (до C++11) | |
bitset operator~()constnoexcept; | (начиная с C++11) (constexpr начиная с C++23) | |
Выполняет двоичные И, ИЛИ, исключающее ИЛИ и НЕ.
1) Устанавливает биты в результат двоичного И для соответствующих пар битов *this и other.
2) Устанавливает биты в результат двоичного ИЛИ для соответствующих пар битов *this и other.
3) Устанавливает биты в результат двоичного исключающего ИЛИ для соответствующих пар битов *this и other.
4) Возвращает временную копию *this со всеми инвертированными битами (двоичное НЕ).
Обратите внимание, что &=
, |=
и ^=
определены только для наборов битов одинакового размера N
.
Содержание |
[править]Параметры
other | — | другой набор битов |
[править]Возвращаемое значение
1-3)*this
4)bitset<N>(*this).flip()
[править]Пример
Запустить этот код
#include <iostream>#include <string>#include <bitset> int main(){conststd::string pattern_str{"1001"};std::bitset<16> pattern{pattern_str}, dest; for(std::size_t i = dest.size()/pattern_str.size(); i !=0;--i){ dest <<= pattern_str.size(); dest |= pattern;std::cout<< dest <<" (i = "<< i <<")\n";} std::cout<< ~dest <<" (~dest)\n";}
Вывод:
0000000000001001 (i = 4) 0000000010011001 (i = 3) 0000100110011001 (i = 2) 1001100110011001 (i = 1) 0110011001100110 (~dest)
[править]Смотрите также
выполняет двоичный сдвиг влево и вправо (public функция-элемент) |