Partager via


<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