Os operadores relacionais do C realizam comparações entre variáveis. São eles:
Operador > >= < <= == != | Ação Maior do que Maior ou igual a Menor do que Menor ou igual a Igual a Diferente de |
Os operadores relacionais retornam verdadeiro (1) ou falso (0). Para fazer operações com valores lógicos (verdadeiro e falso) temos os operadores lógicos:
Operador && || ! | Ação AND (E) OR (OU) NOT (NÃO) |
Usando os operadores relacionais e lógicos podemos realizar uma grande gama de testes. A tabela-verdade destes operadores é dada a seguir:
p falso falso verdadeiro verdadeiro | q falso verdadeiro falso verdadeiro | p AND q falso falso falso verdadeiro | p OR q falso verdadeiro verdadeiro verdadeiro |
Exemplo: No trecho de programa abaixo o if será executado, pois o resultado da expressão lógica é
verdadeiro:int i = 5, j =7;
if ( (i > 3) && ( j <= 7) && ( i != j) ) j++;
V AND V AND V = V
if ( (i > 3) && ( j <= 7) && ( i != j) ) j++;
V AND V AND V = V
Operadores Lógicos Bit a Bit
O C permite que se faça operações lógicas "bit-a- bit" em números. Ou seja, neste caso, o número é representado por sua forma binária e as operações são feitas em cada bit dele. Imagine um número inteiro de 16 bits, a variável i, armazenando o valor 2. A representação binária de i, será: 0000000000000010 (quinze zeros e um único 1 na segunda posição da direita para a esquerda). Poderemos fazer operações em cada um dos bits deste número. Por exemplo, se fizermos a negação do número (operação binária NOT, ou operador binário ~ em C), isto é, ~i, o número se transformará em 1111111111111101. As operações binárias ajudam programadores que queiram trabalhar com o computador em "baixo nível". As operações lógicas bit a bit só podem ser usadas nos tipos char, int e long int. Os operadores são:
Operador | Ação |
---|---|
& | AND |
| | OR |
^ | XOR (OR exclusivo) |
~ | NOT |
>> | Deslocamento de bits a direita |
<< | Deslocamento de bits a esquerda |
Os operadores &, |, ^ e ~ são as operações lógicas bit a bit. A forma geral dos operadores de deslocamento é:
valor>>número_de_deslocamentos
valor<<número_de_deslocamentos
O número_de_deslocamentos indica o quanto cada bit irá ser deslocado. Por exemplo, para a variável i anterior, armazenando o número 2:
i << 3;
fará com que i agora tenha a representação binária: 0000000000010000, isto é, o valor armazenado em i passa a ser igual a 16.
0 comentários:
Postar um comentário