valarray::operator~
Un opérateur unaire qui obtient de bits des valeurs de NOT de chaque élément dans un valarray.
valarray<Type> operator~( ) const;
Valeur de retour
Le valarray des valeurs booléennes qui sont de bits NOT des valeurs d'élément du valarray opérande.
Notes
Une opération de bits peut être utilisée pour manipuler des bits d' char et les types de données et les variantes d' int et non sur float, double, longdouble, void, bool ou autre, des types de données plus complexes.
Opération de bits NOT a la même table de vérité que NOT logique mais s'applique au type de données au niveau de les bits.Le bit donné b, ~b est vrai si b a la valeur false et false si b est true.NOTlogiqueopérateur ! s'applique à un niveau d'élément, compter toutes les valeurs différentes de zéro comme true, et le résultat est un valarray des valeurs booléennes.Opération de bits NOToperator~, en revanche, peut entraîner un valarray des valeurs autres que 0 ou 1, selon les résultats de l'opération de bits.
Exemple
// valarray_op_bitnot.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<unsigned short int> vaL1 ( 10 );
valarray<unsigned short int> vaNOT1 ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL1 [ i ] = i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL1 [ i ] = 5*i;
cout << "The initial valarray <unsigned short int> is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL1 [ i ] << " ";
cout << ")." << endl;
vaNOT1 = ~vaL1;
cout << "The element-by-element result of "
<< "the bitwise NOT operator~ is the\n valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNOT1 [ i ] << " ";
cout << ")." << endl << endl;
valarray<int> vaL2 ( 10 );
valarray<int> vaNOT2 ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL2 [ i ] = i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL2 [ i ] = -2 * i;
cout << "The initial valarray <int> is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL2 [ i ] << " ";
cout << ")." << endl;
vaNOT2 = ~vaL2;
cout << "The element-by-element result of "
<< "the bitwise NOT operator~ is the\n valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNOT2 [ i ] << " ";
cout << ")." << endl;
// The negative numbers are represented using
// the two's complement approach, so adding one
// to the flipped bits returns the negative elements
vaNOT2 = vaNOT2 + 1;
cout << "The element-by-element result of "
<< "adding one\n is the negative of the "
<< "original elements the\n valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNOT2 [ i ] << " ";
cout << ")." << endl;
}
Configuration requise
en-tête : <valarray>
l'espace de noms : DST