std::bitset<N>::operator<<,<<=,>>,>>=
Материал из cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| (1) | ||
bitset operator<<( std::size_t pos ) const; |
(до C++11) | |
bitset operator<<( std::size_t pos ) const noexcept; |
(начиная с C++11) (constexpr начиная с C++23) |
|
| (2) | ||
bitset& operator<<=( std::size_t pos ); |
(до C++11) | |
bitset& operator<<=( std::size_t pos ) noexcept; |
(начиная с C++11) (constexpr начиная с C++23) |
|
| (3) | ||
bitset operator>>( std::size_t pos ) const; |
(до C++11) | |
bitset operator>>( std::size_t pos ) const noexcept; |
(начиная с C++11) (constexpr начиная с C++23) |
|
| (4) | ||
bitset& operator>>=( std::size_t pos ); |
(до C++11) | |
bitset& operator>>=( std::size_t pos ) noexcept; |
(начиная с C++11) (constexpr начиная с C++23) |
|
Выполняет двоичный сдвиг влево (к более высоким позициям индекса) и двоичный сдвиг вправо (к более низким позициям индекса). Вставляются нули, а биты, которые должны попасть в индекс вне допустимого диапазона, отбрасываются (игнорируются).
1,2) Выполняет двоичный сдвиг влево. Версия (2) является необратимой, т.е. выполняет сдвиг текущего объекта.
3,4) Выполняет двоичный сдвиг вправо. Версия (4) является необратимой, т.е. выполняет сдвиг текущего объекта.
Параметры
| pos | — | количество позиций для сдвига битов |
Возвращаемое значение
1,3) новый объект набора битов, содержащий сдвинутые биты
2,4)
*thisПример
Запустить этот код
#include <iostream>
#include <bitset>
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) |
вычисляет результат побитового циклического сдвига вправо (шаблон функции) |
| выполняет бинарное И, ИЛИ, исключающее ИЛИ и НЕ (public функция-элемент) |