Delen via


Een complementoperator: ~

Syntaxis

~ cast-expression

Opmerkingen

De operator van het ene complement (~ook wel de operator bitwise complement genoemd) levert een bitwise aanvulling van de operand op. Dat wil gezegd, elke bit die 1 in de operand is, is 0 in het resultaat. Omgekeerd is elke bit die 0 in de operand is 1 in het resultaat. De operand naar de complementoperator moet een integraal type zijn.

Operatorwoord voor ~

C++ geeft aan compl als alternatieve spelling voor ~. In C wordt de alternatieve spelling opgegeven als macro in de <kop iso646.h> . In C++is de alternatieve spelling een trefwoord; gebruik van <iso646.h> of het C++ equivalente <ciso646> is afgeschaft. In Microsoft C++is de /permissive- optie of /Za compiler vereist om de alternatieve spelling in te schakelen.

Voorbeeld

// expre_One_Complement_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main () {
   unsigned short y = 0xFFFF;
   cout << hex << y << endl;
   y = ~y;   // Take one's complement
   cout << hex << y << endl;
}

In dit voorbeeld is de nieuwe waarde die is toegewezen y aan de aanvulling van de niet-ondertekende waarde 0xFFFF of 0x0000.

Integrale promotie wordt uitgevoerd op integrale operanden. Het type waar de operand naar wordt gepromoveerd, is het resulterende type. Zie Standard-conversies voor meer informatie over integrale promotie.

Zie ook

Expressies met unaire operatoren
Ingebouwde C++-operators, prioriteit en associativiteit
Unaire rekenkundige operatoren