=====Bitset Constructors===== Syntax: #include bitset(); bitset( unsigned long val ); explicit bitset( const string& str, string::size_type pos = 0, string::size_type n = string::npos ); Bitsets can be constructed with default values, from the bits in an unsigned long, or from string. * The default value of a bit is 0. * When an unsigned long argument is supplied, each bit in the integer is used to initialize the corresponding bit in the bitset (if any). * A string argument does the same, except that the character '0' gives the bitvalue 0, the character '1' gives the bitvalue 1, and other characters cause an invalid_argument exception to be thrown. Note that this constructor is explicit. So no implicit type conversion from const char* to string is provided. When creating bitsets, the number given in the place of the template determines how long the bitset is. For example, the following code creates two bitsets and displays them: // create a bitset that is 8 bits long bitset<8> bs; // display that bitset cout << bs << endl; // create a bitset out of a number bitset<8> bs2( 131 ); // display that bitset, too cout << bs2 << endl; // create a bitset out of a string bitset<8> bs3(string("10000000")); // display the integer value of that bitset cout << bs3.to_ulong() << endl; When run, this code displays the following output: 00000000 10000011 128