Operador de complemento individual: ~
Sintaxe
~ cast-expression
Comentários
O operador de complemento de um (~
), às vezes chamado de operador de complemento bit a bit, gera um complemento bit a bit de seu operando. Ou seja, cada bit que é 1 no operando, é 0 no resultado. De forma análoga, cada bit que é 0 no operando, é 1 no resultado. O operando para o operador de complemento de um deve ser um tipo integral.
Palavra-chave do operador para ~
O C++ especifica compl
como uma ortografia alternativa para ~
. Em C, a ortografia alternativa é fornecida como uma macro no cabeçalho <iso646.h>. No C++, a ortografia alternativa é uma palavra-chave; o uso de <iso646.h> ou do equivalente do C++ <ciso646> foi preterido. No Microsoft C++, a opção do compilador /permissive-
ou /Za
é necessária para habilitar a ortografia alternativa.
Exemplo
// 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;
}
Nesse exemplo, o novo valor atribuído a y
é o complemento de um do valor sem sinal 0xFFFF, ou 0x0000.
A promoção integral é executada em operandos integrais. O tipo para o qual o operando é promovido é o tipo resultante. Para obter mais informações sobre a promoção integral, consulte conversões Padrão.
Confira também
Expressões com operadores unários
Operadores internos, precedência e associatividade no C++
Operadores aritméticos unários