<bitset>
, opérateurs
operator&
Exécute une opération AND
au niveau du bit entre deux bitsets.
template <size_t size>
bitset<size>
operator&(
const bitset<size>& left,
const bitset<size>& right);
Paramètres
left
Le premier des deux bitsets dont les éléments respectifs doivent être combinés avec l’opérateur AND
au niveau du bit.
right
Le deuxième des deux bitsets dont les éléments respectifs doivent être combinés avec l’opérateur AND
au niveau du bit.
Valeur de retour
Bitset dont les éléments sont le résultat d’effectuer l’opération AND
sur les éléments correspondants de gauche et de droite.
Exemple
// 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<<
Insère une représentation textuelle de la séquence de bits dans le flux de sortie.
template <class CharType, class Traits, size_t N>
basic_ostream<CharType, Traits>& operator<<(
basic_ostream<CharType, Traits>& ostr,
const bitset<N>& right);
Paramètres
right
Objet de type bitset<N> à insérer dans le flux de sortie sous forme de chaîne.
Valeur de retour
Représentation textuelle de la séquence de bits en ostr
.
Notes
La fonction de modèle surcharge operator<<
, ce qui permet à un bitset d’être écrit sans le convertir en chaîne. La fonction de modèle est exécutée :
ostr << right.
to_string<CharType, Traits, allocator<CharType>>()
Exemple
// 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>>
Lit une chaîne de bits dans un bitset.
template <class CharType, class Traits, size_t Bits>
basic_istream<CharType, Traits>& operator>> (
basic_istream<CharType, Traits>& i_str,
bitset<N>& right);
Paramètres
i_str
Chaîne entrée dans le flux d’entrée à insérer dans le bitset.
right
Bitset qui reçoit les bits du flux d’entrée.
Valeur de retour
La fonction de modèle retourne la chaîne i_str.
Notes
La fonction de modèle surcharge operator>>
pour stocker dans le bitset à droite la valeur bitset(str)
, où str
est un objet de type basic_string< CharType, Traits, allocator< CharType > >&
extrait de i_str.
La fonction de modèle extrait les éléments de i_str et les insère dans le bitset jusqu’à ce que :
Tous les éléments de bit ont été extraits du flux d’entrée et stockés dans le bitset.
Le bitset est rempli avec les bits du flux d’entrée.
Un élément d’entrée est rencontré, qui n’est ni 0, ni 1.
Exemple
#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^
Exécute une opération EXCLUSIVE-OR
au niveau du bit entre deux bitsets.
template <size_t size>
bitset<size>
operator^(
const bitset<size>& left,
const bitset<size>& right);
Paramètres
left
Le premier des deux bitsets dont les éléments respectifs doivent être combinés avec l’opérateur EXCLUSIVE-OR
au niveau du bit.
right
Le deuxième des deux bitsets dont les éléments respectifs doivent être combinés avec l’opérateur EXCLUSIVE-OR
au niveau du bit.
Valeur de retour
Bitset dont les éléments sont le résultat d’effectuer l’opération EXCLUSIVE-OR
sur les éléments correspondants de gauche et de droite.
Exemple
// 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|
Effectue une opération OR au niveau du bit entre deux bitset
objets.
template <size_t size>
bitset<size>
operator|(
const bitset<size>& left,
const bitset<size>& right);
Paramètres
left
Le premier des deux bitsets dont les éléments respectifs doivent être combinés avec l’opérateur OR
au niveau du bit.
right
Le deuxième des deux bitsets dont les éléments respectifs doivent être combinés avec l’opérateur OR
au niveau du bit.
Valeur de retour
Bitset dont les éléments sont le résultat d’effectuer l’opération OR
sur les éléments correspondants de gauche et de droite.
Exemple
// 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