Einerkomplementoperator: ~

Syntax

~ cast-expression

Hinweise

Der Einerkomplementoperator (~), der manchmal als bitweiser Komplementoperator bezeichnet wird, ergibt einen bitweisen Einerkomplement seines Operanden. Das bedeutet, dass jedes Bit, das 1 im Operanden ist, 0 im Ergebnis ist. Umgekehrt ist jedes Bit, das 0 im Operanden ist, im Ergebnis 1. Der Operand für den Einerkomplementoperator muss ein ganzzahliger Typ sein.

Operator-Schlüsselwort für ~

C++ gibt compl als alternative Schreibweise für ~ an. In C wird die alternative Schreibweise als Makro im Header <iso646.h> bereitgestellt. In C++ ist die alternative Schreibweise ein Schlüsselwort; die Verwendung von <iso646.h> oder das C++-Äquivalent <ciso646> ist veraltet. In Microsoft C++ ist die Compileroption /permissive- oder /Za erforderlich, um die alternative Schreibweise zu aktivieren.

Beispiel

// 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 diesem Beispiel ist der neue Wert, der y zugewiesen ist, das Einerkomplement des Werts ohne Vorzeichen 0xFFFF oder 0x0000.

Ganzzahlige Erweiterung wird für ganzzahlige Operanden ausgeführt. Der Typ, in den der Operand höhergestuft wird, ist der resultierende Typ. Weitere Informationen zur integralen Höherstufung finden Sie unter Standardkonvertierungen.

Siehe auch

Ausdrücke mit unären Operatoren
In C++ integrierte Operatoren, Rangfolge und Assoziativität
Unäre arithmetische Operatoren