< cpp‎ | utility‎ | bitset
Revision as of 14:26, 18 April 2013 by Cubbi (Talk | contribs)


Template:ddcl list begin <tr class="t-dcl ">

<td >
template <class CharT, class Traits, size_t N>

std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os,

                                              const bitset<N>& x);

<td > (1) </td> <td class="t-dcl-nopad"> </td> </tr> <tr class="t-dcl ">

<td >
template <class CharT, class Traits, size_t N>

std::basic_istream<CharT, Traits>& operator>>(std::basic_istream<CharT, Traits>& is,

                                              bitset<N>& x);

<td > (2) </td> <td class="t-dcl-nopad"> </td> </tr> Template:ddcl list end

Inserts or extracts a bitset from a character stream.

1) Writes the bitset x to the character stream os as if by first converting it to a basic_string<CharT, Traits> using Template:rlpf, and then writing it into os using the operator<< (which is a FormattedOutputFunction for strings). The characters to use for ones and zeroes are obtained from the currently-imbued locale by calling std::use_facet<std::ctype<CharT>(os.getloc()).widen() with '1' and '0' as arguments.

2) Behaves as a FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, extracts up to N characters from is and stores the characters in the bitset x.

Characters are extracted until either

  • N characters have been read,
  • end-of-file occurs in is, or
  • the next character is neither is.widen('0') nor is.widen('1').

If no characters are extracted, is.setstate(ios_base::failbit) is called.



os - the character stream to write to
is - the character stream to read from
x - the bitset to be read or written

Return value

The character stream that was operated on, e.g. os or is.


#include <bitset>
#include <iostream>
#include <sstream>
int main()
    std::string bit_string = "001101";
    std::istringstream bit_stream(bit_string);
    std::bitset<3> b1;
    bit_stream >> b1; // reads "001", stream still holds "101"
    std::cout << b1 << '\n';
    std::bitset<8> b2;
    bit_stream >> b2; // reads "101", populates the 8-bit set as "00000101"
    std::cout << b2 << '\n';



See also

performs binary shift left and shift right
(public member function) [edit]