<bitset>
betriebspersonal
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