##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

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

From cppreference.com
< cpp‎ | utility‎ | bitset

bitset<N> operator<<( size_t pos ) const; | (1) |
bitset<N>& operator<<=( size_t pos ); | (2) |
bitset<N> operator>>( size_t pos ) const; | (3) |
bitset<N>& operator>>=( size_t pos ); | (4) |

Performs binary shift left and binary shift right. Zeroes are shifted in.

1-2) Performs binary shift left. The (2) version is destructive, i.e. performs the shift to the current object.

3-4) Performs binary shift right. The (4) version is destructive, i.e. performs the shift to the current object.

### [edit] Parameters

pos | - | number of positions to shift the bits

### [edit] Return value

1,3) new bitset object containing the shifted bits

2,4) *this

### [edit] Example

Run this code

    #include <iostream>
    #include <bitset>

    int main()
    {
        std::bitset<8> b("01110010");
        std::cout << "initial value: " << b << '\n';

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

Output:

    initial value: 01110010
    00111001
    00000111
    00000011
    00000001

### [edit] See also

operator&=operator|=operator^=operator~ | performs binary AND, OR, XOR and NOT (public member function) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/utility/bitset/operator_ltltgtgt&oldid=59517"