Compartir a través de


Operador de complemento: ~

Sintaxis

~ cast-expression

Comentarios

El operador de complemento de uno (~), denominado a veces operador de complemento bit a bit, produce un complemento de uno bit a bit de su operando. Es decir, cada bit que es 1 en el operando es 0 en el resultado. Y a la inversa: cada bit que es 0 en el operando es 1 en el resultado. El operando del operador de complemento de uno debe ser de tipo entero.

Palabra clave del operador para ~

C++ especifica compl como una ortografía alternativa para ~. En C, la ortografía alternativa se proporciona como una macro en el encabezado <iso646.h>. En C++, la ortografía alternativa es una palabra clave; el uso de <iso646.h> o el equivalente de C++ <ciso646> está en desuso. En Microsoft C++, se requiere la opción del compilador /permissive- o /Za para poder habilitar la ortografía alternativa.

Ejemplo

// 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;
}

En este ejemplo, el nuevo valor asignado a y es el complemento de uno del valor sin signo 0xFFFF, or 0x0000.

La promoción de entero se realiza en operandos enteros. El tipo al que se promueve el operando es el tipo resultante. Para obtener más información sobre la promoción integral, consulte Conversiones estándar.

Consulte también

Expresiones con operadores unarios
Operadores integrados de C++, precedencia y asociatividad
Operadores aritméticos unarios