Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein unärer Operator, der die bitweisen NICHT-Werte jedes Elements in einem Array von Werten abgerufen wird.
valarray<Type> operator~( ) const;
Rückgabewert
Der Wertarray von booleschen Werten, die bitweise NICHT der Elementwerte des Operandenwertarrays sind.
Hinweise
Eine bitweise Operation kann nur verwendet werden, um Bits in char und int Datentypen und -Varianten und nicht auf float, double, longdouble, void, bool oder anderen, mehr Typen der komplexen Daten zu bearbeiten.
Bitweise NICHT verfügt, die gleiche Wahrheitstabelle wie logische NICHT jedoch bezieht sich auf den Datentyp auf der Ebene der einzelnen Bits zu.Rückgabe des angegebenen Bit b, ~b gilt, wenn b falsch und falsch, wenn b true ist.Logische NICHTOperator! gilt für einer Elementebene zu und zählt alle Werte ungleich 0 (null) als true, und das Ergebnis ist ein Wertarray von booleschen Werten.Bitweise NICHToperator~, durch dazu, kann ein Array von Werten von Werten auf 0 oder 1, abhängig vom Ergebnis der bitweisen Operation führen.
Beispiel
// 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;
}
Anforderungen
Header: <valarray>
Namespace: std