Compartilhar via


Operadores aritméticos unários

Vários operadores do C – unário de adição, de negação aritmética, de complemento e de negação lógica – são discutidos na lista a seguir:

Operador Descrição
+ O operador unário de adição que precede uma expressão entre parênteses força o agrupamento das operações incluídas. É usado com expressões que envolvem mais de um operador binário associativo ou comutativo. O operando deve ser do tipo aritmético. O resultado é o valor do operando. Um operando de integral passa por uma promoção de integral. O tipo do resultado é o tipo do operando promovido.
- O operador de negação aritmética produz o negativo (complemento de dois) do respectivo operando. O operando deve ser um valor de integral ou flutuante. Este operador executa as conversões aritméticas comuns.
~ O operador de complemento bit a bit (ou NOT bit a bit) produz o complemento bit a bit do respectivo operando. O operando deve ser do tipo integral. Este operador executa as conversões aritméticas comuns; o resultado tem o tipo do operando após a conversão.
! O operador de negação lógica (NOT lógico) produz o valor 0 se o operando é verdadeiro (diferente de zero) e o valor 1 se o operando é falso (0). O resultado tem o tipo int. O operando deve ser um valor de ponteiro, integral ou flutuante.

Operações aritméticas unárias em ponteiros não são válidas.

Exemplos

Os exemplos a seguir ilustram os operadores aritméticos unários:

short x = 987;
    x = -x;

No exemplo acima, o novo valor de x é o negativo de 987, ou seja, -987.

unsigned short y = 0xAAAA;
    y = ~y;

Nesse exemplo, o novo valor atribuído a y é o complemento de um do valor sem sinal 0xAAAA, ou 0x5555.

if( !(x < y) )

Se x é maior ou igual a y, o resultado da expressão é 1 (verdadeiro). Se x é menor que y, o resultado é 0 (falso).

Confira também

Expressões com operadores unários