Spec-Zone.ru › C++

std::bitset<N>::operator<<,<<=,>>,>>=

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 << " (initial value)\n";

    for (; b.any(); b >>= 1)
    {
        while (!b.test(0))
            b >>= 1;
        std::cout << b << '\n';
    }

    std::cout << b << " (final value)\n";
}

Вывод:

01110010 (initial value)
00111001
00000111
00000011
00000001
00000000 (final value)

См. также

rotl
(C++20)
вычисляет результат побитового циклического сдвига влево
(шаблон функции)
rotr
(C++20)
вычисляет результат побитового циклического сдвига вправо
(шаблон функции)
bit_reverse
(C++29)
изменяет порядок битов целого числа на обратный
(шаблон функции)
operator&=operator|=operator^=operator~
выполняют двоичные операции И, ИЛИ, исключающее ИЛИ и НЕ
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/bitset/operator_ltltgtgt

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API