Operatore di complemento: ~

Sintassi

~ cast-expression

Osservazioni:

L'operatore di complemento (~), talvolta chiamato operatore di complemento bit per bit, restituisce un complemento bit per bit del relativo operando. Ovvero ogni bit con 1 nell'operando è 0 nel risultato. Viceversa, ogni bit con 0 nell'operando è 1 nel risultato. L'operando dell'operatore di complemento a uno deve essere un tipo integrale.

Parola chiave operator per ~

C++ specifica compl come ortografia alternativa per ~. In C, l'ortografia alternativa viene fornita come macro nell'intestazione <iso646.h> . In C++, l'ortografia alternativa è una parola chiave; l'uso di <iso646.h> o del ciso646> equivalente <C++ è deprecato. In Microsoft C++, l'opzione del /permissive- compilatore o /Za è necessaria per abilitare l'ortografia alternativa.

Esempio

// 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 questo esempio, il nuovo valore assegnato a y è il complemento a uno del valore non firmato 0xFFFF o a 0x0000.

La promozione a intero viene eseguita su operandi integrali. Il tipo a cui viene promosso l'operando è il tipo risultante. Per altre informazioni sulla promozione integrale, vedere Conversioni standard.

Vedi anche

Espressioni con operatori unari
Operatori, precedenza e associatività predefiniti C++
Operatori aritmetici unari