Você está na página 1de 8

Centro de Tecnologia Microgenios - Todos os direitos reservados

Clique aqui para Imprimir o doc

umento

Os Operadores

1.0 Os operadores Aritmticos:


1.1 Adio e Subtrao
1.2 Multiplicao e Diviso
1.3 O operador %
1.4 O operador de Incremento ++ e decremento --:
1.5 Operadores Relacionais;
1.6 Operadores lgicos ou Booleanos
1.7 Os operadores Bit a Bit
1.8 O Operador AND (E)
1.9 O Operador OR (|)
2.0 O Operador XOR (^)
2.1 O Operador NOT (~)
2.2 O Operador de deslocamento << >>

Tipos de Operadores
A linguagem C faz uso de diversos operadores. Podemos classifica-los em algumas
categoria principais: artmticos, relacionais, lgicos, lgicos bit a bit , outros.
Os operadores Aritmticos:
Os operadores aritmticos so utilizados para efetuar determinadas operaes
matemticas entre dados e so classificados em duas categorias, sendo binrio ou
unrio. Os operadores binrios atuam em operaes de exponenciao, diviso, adio e

subtrao. Os unrios atua na inverso de valores, atribuindo o sinal de positivo ou


negativo.
operador
+
*
/
%
++
--

ao
adio
subtrao ou
menos unrio
Multiplicao
Diviso
Resto da diviso
inteira
incremento
Decremento

voltar para o topo da pagina

Adio e Subtrao
Os operadores de adio e subtrao so muito simples de serem utilizados,
acompanhe:
c = a + b;
d = d + b;
c = c - a;
a = d - a + c;
voltar para o topo da pagina

Multiplicao e Diviso
Os operadores de multiplicao e de diviso, em C, so de fcil assimilao;
c = a * b;
d = d * d;
c = c / a;
a = (d * a) / c;
voltar para o topo da pagina

O operador %
O operador % utilizado para retornar o resto de uma operao de diviso inteira.
Vejamos um exemplo:

7 / 3 = 2, em uma diviso inteira, sendo o resto igual a 1.


Assim, o valor de 7 / 3 = 2 e o valor de 7 % 3 = 1.
voltar para o topo da pagina

O operador de Incremento ++ e decremento --:


O operador de incremento e decrevemento so utilizados para somar 1 ou subtrair 1 de
uma varivel. Exemplo:
C = C + 1;
No exemplo acima a varivel C foi incrementada em 1 unidade. Podemos ter o mesmo
resultado da operao acima atravs do operador de incremento ++ que termos o mesmo
resultado;
C++;

(equivale a c = c + 1;)

c ++;
d--;

//incrementa em 1 unidade o valor da varivel C


//incrementa em 1 unidade o valor da varivel D

Acompanhe o exemplo abaixo:


variavel _a = variavel_b ++;
Observe que o valor da varivel variavel _b atribuido a varivel variavel
_a, e logo aps isso, o valor de variavel _b incrementado em 1 unidade:
Isso tambm vlido para o comando de decremento --.
variavel _a = variavel_b --;
Observe que o valor da varivel variavel _b atribuido a varivel variavel
_a, e logo aps isso, o valor de variavel _b decrementado em 1 unidade:

Devemos tomar alguns cuidados em C com relao aos operadores de incremento e


decremento: vejam;
variavel _a = variavel_b ++;
diferente de
variavel _a = ++ variavel_b;

Note que no primeira linha de comando, variavel_b incrementada em 1 depois


que atribuiu seu valor a varivel variavel _a. Na segunda linha, o valor da
variavel_b incrementada em 1 antes de atribuir seu valo a varivel variavel
_a.
Vejamos um exemplo:
int a, b, c;
a = 0;
b = a ++;
c = ++ a;
Neste caso, aps a execuo dos trs comandos, o valor de "a" ser igual a 2, o valor da
varivel "b" ser igual a 0 e o valor da varivel "c" ser igual a 2.
voltar para o topo da pagina

Operadores Relacionais;
Os operadores relacionais servem para comparar expresses. So muito utilizado para
comparar condies de controle do fluxo de execuo de programas.
operador
>
>=
<
<=
==
!=

Operao
realizada
maior que
maior ou igual a
menor que
menor ou igual a
igual a
diferente de

Estes operadores sero muito utilizado para construir expresses condicionais, como
veremos mais adiante em nosso curso.
voltar para o topo da pagina

Operadores lgicos ou Booleanos


Os operadores lgicos ou booleanos so de grande importncia para construes de
testes condicionais.
operador
&&
||

Operao
realizada
AND (E)
OR (OU)

NOT (NO)

Com esses operadores podemos relacionar diversas condies diferentes em um mesmo


teste lgico.
if (c = 10 && b = 5) c = 5; // condio verdadeira de teste: se a varivel "c" for igual a
10 e a varivel b = 5 ento "c" assumir o valor 5.
if (c>0 || a==0) b = a; // condio verdadeira de teste: se a varivel "c" for maior que 0
ou a for igual a 0 ento "b" igual a varivel "a".
if (!a) b = c; // condio verdadeira de teste: se a varivel "a" for igual a 0, a varivel
"b" assumir o valor da varivel "c". Note que estamos utilizando o operador de
negao "!" NOT, por esse motivo a varivel "a" assumir o valor verdadeiro, j que
possui valor 0.
voltar para o topo da pagina

Os operadores Bit a Bit


Os operadores Bit a Bit so utilizados para realizar operaes lgicas entre elementos
ou variveis.
operador
&
|
^
~
>>
<<

Operao
realizada
AND (E)
OR (OU)
XOR (OU
exclusiva)
NOT
(complemento de
um)
deslocamento
direita
deslocamento
esquerda

voltar para o topo da pagina

O Operador AND (E)


O operador lgico AND realiza operao separadamente para cada bit dos operandos.
Utilizamos muito este o operando AND como "mscara" de um byte, para habilitar ou
desabilitar somente os bits que desejamos. Veja um exemplo:

int a, b;
a = 125;
b = 28;
a = a & b;
A operao AND ocorrer da seguinte maneira:
a = 100 ----> 01100100
AND (&)
b = 28 ---->
00011100
___________________
Resultado=

00000100 //ou 4 decimal

voltar para o topo da pagina

O Operador OR (|)
O operador OR muito similar ao operador AND, sua operao tambm realizada
para cada bit do operando. Exemplo:
int a, b;
a = 125;
b = 28;
a = a | b;
A operao OR ocorrer da seguinte maneira:
a = 100 ----> 01100100
OR (|)
b = 28 ---->
00011100
___________________
Resultado=

01111100 //ou 124 decimal

voltar para o topo da pagina

O Operador XOR (^)


O operador XOR so muito utilizado em funes de comparao de valores, pois em
uma operao lgica, o resultado somente ser verdadeiro (nvel lgico 1) se um e
somente um deles for verdadeiro ( nvel 1). Exemplo:
int a, b;
a = 125;
b = 28;
a = a ^ b;

A operao OR ocorrer da seguinte maneira:


a = 100 ----> 01100100
XOR (^)
b = 28 ---->
00011100
___________________
Resultado=

01111000 //ou 120 decimal

voltar para o topo da pagina

O Operador NOT (~)


O operador NOT inverte o estado de cada bit do operando em uma operao. Exemplo:
int a, b, c;
a = 1;
b = 1;
b = ~a
c = ~b
A operao OR ocorrer da seguinte maneira:
a = 0B00000001; NOT de "a" ---->

0b11111110;

b = 0b00000001; NOT de "b" ---->

0b11111110;

voltar para o topo da pagina

O Operador de deslocamento << >>


O operador >> desloca para a direita os bits de uma varivel um determinado nmero de
vezes. exemplo:
int a, b, c;
a = 10;
b = 10;
b = a >> 1;
c = b << 5;
No exemplo acima, os valores dos bits da varivel "a" foram deslocados 2 vezes para a
direita, enquanto os bits da varivel b foram deslocados 5 vezes para a esquerda.
Teremos como resultado:
varivel a; // ----> 00001010 - valor 10 em binrio
>>

// ----> 00000101 - valor 5 em binrio


Observe que o valor aps deslocamento passa a ser agora 5 em binrio.
A descrio do operador (>>), deslocamento direita, anloga ao operador
deslocamento esquerda (>>), com ressalva de que os bits sero deslocados esquerda.
voltar para o topo da pagina

Centro de Tecnologia Microgenios - Curso de Microcontroladores PIC - Programao


em C
Microgenios 1998 - 2008. Todos os direitos reservados. proibido cpia parcial ou
integral desse material sem prvio aviso. Maiores informaes:
suporte@microgenios.com.br