Bitset Operators

Syntax:

    #include <bitset>
    !=, ==, &=, ^=, |=, ~, <<=, >>=, [], =

These operators all work with bitsets. They can be described as follows:

Operator Description
!= returns true if the two bitsets are not equal
== returns true if the two bitsets are equal
&= performs the AND operation on the two bitsets
& performs the AND operation on the two bitsets
^= performs the XOR operation on the two bitsets
^ performs the XOR operation on the two bitsets
|= performs the OR operation on the two bitsets
| performs the OR operation on the two bitsets
<<= shifts the bitset to the left
<< creates a copy of the bitset shifted to the left
>>= shifts the bitset to the right
>> creates a copy of the bitset shifted to the right
~ creates a reversed copy of the bitset (same as calling flip() on a copy)
b[x] returns a reference to the xth bit in the bitset
= take an unsigned long and put the corresponding bits in the bitset

For example, the following code creates a bitset and shifts it to the left 4 places:

   // create a bitset out of a number
   bitset<8> bs2( 131ul );
   // you can do bitset<8> bs2; bs2 = 131ul;
 
   cout << "bs2 is " << bs2 << endl;
   // shift the bitset to the left by 4 digits
   bs2 <<= 4;
   cout << "now bs2 is " << bs2 << endl;

When the above code is run, it displays:

 bs2 is 10000011
 now bs2 is 00110000