std::bitset<N>:: operator<<,<<=,>>,>>=
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::bitset
| Member types | ||||
| Member functions | ||||
|
(until C++20)
|
||||
| Element access | ||||
| Capacity | ||||
| Modifiers | ||||
|
bitset::operator<<=
bitset::operator>>=
bitset::operator<<
bitset::operator>>
|
||||
| Conversions | ||||
|
(C++11)
|
||||
| Non-member functions | ||||
| Helper classes | ||||
|
(C++11)
|
||||
|
bitset operator
<<
(
std::
size_t
pos
)
const
;
|
(1) |
(noexcept начиная с C++11)
(constexpr начиная с C++23) |
|
bitset
&
operator
<<=
(
std::
size_t
pos
)
;
|
(2) |
(noexcept начиная с C++11)
(constexpr начиная с C++23) |
|
bitset operator
>>
(
std::
size_t
pos
)
const
;
|
(3) |
(noexcept начиная с C++11)
(constexpr начиная с C++23) |
|
bitset
&
operator
>>=
(
std::
size_t
pos
)
;
|
(4) |
(noexcept начиная с C++11)
(constexpr начиная с C++23) |
Выполняет двоичный сдвиг влево (в сторону старших позиций индекса) и двоичный сдвиг вправо (в сторону младших позиций индекса). Сдвигаются нули, а биты, которые выходят за пределы диапазона индексов, отбрасываются (игнорируются).
1,2)
Выполняет двоичный сдвиг влево.
(2)
версия является деструктивной, т.е. выполняет сдвиг текущего объекта.
3,4)
Выполняет двоичный сдвиг вправо.
(4)
версия является деструктивной, т.е. выполняет сдвиг текущего объекта.
Содержание |
Параметры
| pos | - | количество позиций для сдвига битов |
Возвращаемое значение
1,3)
Новый объект bitset, содержащий сдвинутые биты.
2,4)
*
this
Пример
Запустить этот код
#include <bitset> #include <iostream> int main() { std::bitset<8> b{0b01110010}; std::cout << b << " (начальное значение)\n"; for (; b.any(); b >>= 1) { while (!b.test(0)) b >>= 1; std::cout << b << '\n'; } std::cout << b << " (конечное значение)\n"; }
Вывод:
01110010 (начальное значение) 00111001 00000111 00000011 00000001 00000000 (конечное значение)
Смотрите также
|
(C++20)
|
вычисляет результат побитового поворота влево
(шаблон функции) |
|
(C++20)
|
вычисляет результат побитового поворота вправо
(шаблон функции) |
|
выполняет бинарные операции AND, OR, XOR и NOT
(публичная функция-член) |