Freigeben über


<bitset> Operatoren

operator&

Führt ein bitweises AND zwischen zwei Bitsets aus.

template <size_t size>
bitset<size>
operator&(
    const bitset<size>& left,
    const bitset<size>& right);

Parameter

left
Das erste der beiden Bitsets, dessen jeweilige Elemente mit dem bitweisen AND kombiniert werden sollen.

right
Die zweite der beiden valarray-Klassen, deren jeweilige Elemente mit dem bitweisen AND kombiniert werden sollen.

Rückgabewert

Eine Bitmenge, deren Elemente das Ergebnis der Ausführung des AND Vorgangs für die entsprechenden Elemente von links und rechts sind.

Beispiel

// bitset_and.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>
#include <string>

using namespace std;

int main()
{
   bitset<4> b1 ( string("0101") );
   bitset<4> b2 ( string("0011") );
   bitset<4> b3 = b1 & b2;
   cout << "bitset 1: " << b1 << endl;
   cout << "bitset 2: " << b2 << endl;
   cout << "bitset 3: " << b3 << endl;
}
bitset 1: 0101
bitset 2: 0011
bitset 3: 0001

operator<<

Fügt eine Textdarstellung der Bitsequenz in den Ausgabestream ein.

template <class CharType, class Traits, size_t N>
basic_ostream<CharType, Traits>& operator<<(
    basic_ostream<CharType, Traits>& ostr,
    const bitset<N>& right);

Parameter

right
Ein Objekt vom Typ Bitset<N> , das als Zeichenfolge in den Ausgabedatenstrom eingefügt werden soll.

Rückgabewert

Eine Textdarstellung der Bitsequenz in ostr.

Hinweise

Die Vorlagenfunktion überladen operator<<, sodass ein Bitset ausgeschrieben werden kann, ohne es zuerst in eine Zeichenfolge zu konvertieren. Die Vorlagenfunktion führt Folgendes aus:

ostr << right.to_string<CharType, Traits, allocator<CharType>>()

Beispiel

// bitset_op_insert.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 9 );

   // bitset inserted into output stream directly
   cout << "The ordered set of bits in the bitset<5> b1(9)"
        << "\n can be output with the overloaded << as: ( "
        << b1 << " )" << endl;

   // Compare converting bitset to a string before
   // inserting it into the output stream
   string s1;
   s1 =  b1.template to_string<char,
      char_traits<char>, allocator<char> >( );
   cout << "The string returned from the bitset b1"
        << "\n by the member function to_string( ) is: "
        << s1 << "." << endl;
}

operator>>

Liest eine Folge von Bitzeichen in ein Bitset aus.

template <class CharType, class Traits, size_t Bits>
basic_istream<CharType, Traits>& operator>> (
    basic_istream<CharType, Traits>& i_str,
    bitset<N>& right);

Parameter

i_str
Die in den Eingabestream eingegebene Zeichenfolge, die in das Bitset eingefügt werden soll.

right
Das Bitset, das die Bits aus dem Eingabestream empfängt.

Rückgabewert

Die Vorlagenfunktion gibt die Zeichenfolge i_str zurück.

Hinweise

Die Vorlagenfunktionsüberladungenoperator>>, die im Bitset rechts auf dem Wert bitset(str)gespeichert werden sollen, wobei str es sich um ein Objekt vom Typ basic_string< CharType, Traits, allocator< CharType > >& handelt, das aus i_str extrahiert wird.

Die Vorlagenfunktion extrahiert Elemente aus i_str und fügt sie in das Bitset ein, bis:

  • Alle Bitelemente aus dem Eingabestream extrahiert und im Bitset gespeichert wurden.

  • Das Bitset mit Bits aus dem Eingabestream gefüllt wurde.

  • Ein Eingabeelement gefunden wird, das weder 0 noch 1 ist.

Beispiel

#include <bitset>
#include <iostream>
#include <string>

using namespace std;
int main()
{
   bitset<5> b1;
   cout << "Enter string of (0 or 1) bits for input into bitset<5>.\n"
        << "Try bit string of length less than or equal to 5,\n"
        << " (for example: 10110): ";
   cin >>  b1;

   cout << "The ordered set of bits entered from the "
        << "keyboard\n has been input into bitset<5> b1 as: ( "
        << b1 << " )" << endl;

   // Truncation due to longer string of bits than length of bitset
   bitset<2> b3;
   cout << "Enter string of bits (0 or 1) for input into bitset<2>.\n"
        << " Try bit string of length greater than 2,\n"
        << " (for example: 1011): ";
   cin >>  b3;

   cout << "The ordered set of bits entered from the "
        << "keyboard\n has been input into bitset<2> b3 as: ( "
        << b3 << " )" << endl;

   // Flushing the input stream
   char buf[100];
   cin.getline(&buf[0], 99);

   // Truncation with non-bit value
   bitset<5> b2;
   cout << "Enter a string for input into  bitset<5>.\n"
        << " that contains a character than is NOT a 0 or a 1,\n "
        << " (for example: 10k01): ";
   cin >>  b2;

   cout << "The string entered from the keyboard\n"
        << " has been input into bitset<5> b2 as: ( "
        << b2 << " )" << endl;
}

operator^

Führt ein bitweises EXCLUSIVE-OR zwischen zwei Bitsets aus.

template <size_t size>
bitset<size>
operator^(
    const bitset<size>& left,
    const bitset<size>& right);

Parameter

left
Das erste der beiden Bitsets, dessen jeweilige Elemente mit dem bitweisen EXCLUSIVE-OR kombiniert werden sollen.

right
Die zweite der beiden valarray-Klassen, deren jeweilige Elemente mit dem bitweisen EXCLUSIVE-OR kombiniert werden sollen.

Rückgabewert

Eine Bitmenge, deren Elemente das Ergebnis der Ausführung des EXCLUSIVE-OR Vorgangs für die entsprechenden Elemente von links und rechts sind.

Beispiel

// bitset_xor.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>
#include <string>

using namespace std;

int main()
{
   bitset<4> b1 ( string("0101") );
   bitset<4> b2 ( string("0011") );
   bitset<4> b3 = b1 ^ b2;
   cout << "bitset 1: " << b1 << endl;
   cout << "bitset 2: " << b2 << endl;
   cout << "bitset 3: " << b3 << endl;
}
bitset 1: 0101
bitset 2: 0011
bitset 3: 0110

operator|

Führt ein bitweises ODER zwischen zwei bitset Objekten aus.

template <size_t size>
bitset<size>
operator|(
    const bitset<size>& left,
    const bitset<size>& right);

Parameter

left
Das erste der beiden Bitsets, dessen jeweilige Elemente mit dem bitweisen OR kombiniert werden sollen.

right
Die zweite der beiden valarray-Klassen, deren jeweilige Elemente mit dem bitweisen OR kombiniert werden sollen.

Rückgabewert

Eine Bitmenge, deren Elemente das Ergebnis der Ausführung des OR Vorgangs für die entsprechenden Elemente von links und rechts sind.

Beispiel

// bitset_or.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>
#include <string>

using namespace std;

int main()
{
   bitset<4> b1 ( string("0101") );
   bitset<4> b2 ( string("0011") );
   bitset<4> b3 = b1 | b2;
   cout << "bitset 1: " << b1 << endl;
   cout << "bitset 2: " << b2 << endl;
   cout << "bitset 3: " << b3 << endl;
}
bitset 1: 0101
bitset 2: 0011
bitset 3: 0111