Académique Documents
Professionnel Documents
Culture Documents
PRODUCTS
SHOP
http://learn.mikroe.com/ebooks/microcontrolador...
LEARN
DOCS
BOOKS
LIBSTOCK
FORUM
HELP DESK
Tabla de
contenido
2.5 OPERADORES
MIKROELEKTRONIKA
Un operador es un smbolo que denota una operacin aritmtica, lgica u otra operacin particular. Dicho de
manera sencilla, varias operaciones aritmticas y lgicas se realizan por medio de los operadores. Hay ms de
40 operaciones disponibles en el lenguaje C, pero se utiliza un mximo de 10-15 de ellas en prctica. Cada
operacin se realiza sobre uno o ms operandos que pueden ser variables o constantes. Adems, cada
operacin se caracteriza por la prioridad de ejecucin y por la asociatividad.
OPERADORES ARITMTICOS
Los operadores aritmticos se utilizan en las operaciones aritmticas y siempre devuelven resultados numricos.
Hay dos tipos de operadores, los unitarios y los binarios. A diferencia de las operaciones unitarias que se
realizan sobre un operando, las operaciones binarias se realizan sobre dos operandos. En otras palabras, se
requieren dos nmeros para ejecutar una operacin binaria. Por ejemplo: a+b o a/b.
1
2
3
4
5
6
7
8
int a,b,c;
a = 5;
b = 4;
c = a + b;
c = c%2;
//
//
//
//
//
//
//
//
OPERADOR
OPERACIN
Adicin
Resta
Multiplicacin
Divisin
Resto de la divisin
Declarar 3 enteros a, b, c
Inicializar a
Inicializar b
c = 9
c = 1. Esta operacin se utiliza con frecuencia
para comprobar la paridad. En este caso, el
resultado es 1 lo que significa que la variable
es un nmero imparo
OPERADORES DE ASIGNACIN
Hay dos tipos de asignacin en el lenguaje C:
Los operadores simples asignan los valores a las variables utilizando el carcter comn =. Por ejemplo: a =8
Las asignaciones compuestas son especficas para el lenguaje C. Consisten en dos caracteres como se
muestra en la tabla a la derecha. Se utilizan para simplificar la sintaxis y habilitar la ejecucin ms rpida.
1 de 5
20/01/17 15:27
http://learn.mikroe.com/ebooks/microcontrolador...
EJEMPLO
OPERADOR
Expresin
Equivalente
+=
a += 8
a=a+8
-=
a -= 8
a=a8
*=
a *= 8
a=a*8
/=
a /= 8
a=a/8
%=
a %= 8
a=a%8
OPERADOR
++
1
2
3
4
int
a =
c =
b =
EJEMPLO
++a
a++
b
b
DESCRIPCIN
a, b, c;
b = 5;
1 + a++; // c = 6
++c + a// b = 7 + 6 = 13
OPERADORES RELACIONALES
Los operadores relacionales se utilizan en comparaciones con el propsito de comparar dos valores. En mikroC,
si una expresin es evaluada como falsa (false), el operador devuelve 0, mientras que si una oracin es
evaluada como verdadera (true), devuelve 1. Esto se utiliza en expresiones tales como si la expresin es
evaluada como verdadera, entonces
OPERADOR
DESCRIPCIN
EJEMPLO
CONDICIN DE VERACIDAD
>
mayor que
b>a
si b es mayor que a
>=
mayor o igual
que
a >= 5
<
menor que
a<b
si a es menor que b
<=
menor o igual
que
a <= b
==
igual que
a == 6
si a es igual que 6
!=
desigual que
a != b
si a es desigual que b
1 int prop;
2 int var = 5;
3 prop = var < 10; // Expresin es evaluada como verdadera, prop = 1
OPERADORES LGICOS
2 de 5
20/01/17 15:27
http://learn.mikroe.com/ebooks/microcontrolador...
Hay tres tipos de operaciones lgicas en el lenguaje C: Y (AND) lgico, O (OR) lgico y negacin NO (NOT)
lgico. Los operadores lgicos devuelven verdadero (1 lgico) si la expresin evaluada es distinta de cero. En
caso contrario, devuelve falso (0 lgico) si la expresin evaluada equivale a cero. Esto es muy importante porque
las operaciones lgicas se realizan generalmente sobre las expresiones, y no sobre las variables (nmeros)
particulares en el programa. Por lo tanto, las operaciones lgicas se refieren a la veracidad de toda la expresin.
Por ejemplo: 1
&& 0
es igual a (expresin
FUNCIN
&&
||
NO
OPERADOR
DESCRIPCIN
EJEMPLO
RESULTADO
Complemento a uno
a = ~b
b=5
a = -5
<<
Desplazamiento a la izquierda
a = b << 2
b = 11110011
a = 11001100
>>
Desplazamiento a la derecha
a = b >> 2
b = 11110011
a = 00011110
&
c=a&b
a = 11100011
b = 11001100
c = 11000000
c=a|b
a = 11100011
b = 11001100
c = 11101111
c=a^b
a = 11100011
b = 11001100
c = 00101111
Note que el resultado de la operacin de desplazamiento a la derecha depende del signo de la variable. En caso
de que el operando se aplique a una variable sin signo o positiva, se introducirn los ceros en el espacio vaco
creado por desplazamiento. Si se aplica a un entero con signo negativo, se introducir un 1 para mantener el
signo correcto de la variable.
CMO UTILIZAR LOS OPERADORES?
Aparte de los operadores de asignacin, dos operadores no deben estar escritos uno junto al otro.
1 x*%12; // esta expresin generar un error
3 de 5
PRIORIDAD
OPERADORES
ASOCIATIVIDAD
Alta
() [] -> .
de izquierda a derecha
20/01/17 15:27
Baja
1
2
3
4
5
int
a =
b =
res
res
http://learn.mikroe.com/ebooks/microcontrolador...
de derecha a izquierda
* / %
de izquierda a derecha
+ -
de izquierda a derecha
< >
de izquierda a derecha
de izquierda a derecha
== !=
de izquierda a derecha
&
de izquierda a derecha
de izquierda a derecha
de izquierda a derecha
&&
de izquierda a derecha
||
de derecha a izquierda
?:
de derecha a izquierda
de izquierda a derecha
a, b, res;
10;
100;
= a*(a + b); // resultado = 1100
= a*a + b; // resultado = 200
int x;
x = 3;
x+ = 3.14;
//
//
//
//
Para realizar una conversin explcita, antes de escribir una expresin o una variable hay que especificar el tipo
de resultado de operacin entre parntesis.
1 double distancia, tiempo, velocidad;
2 distancia = 0.89;
3 tiempo = 0.1;
4 de 5
20/01/17 15:27
http://learn.mikroe.com/ebooks/microcontrolador...
2.5 Operadores por MikroElektronika se encuentra bajo una Licencia Creative Commons Atribucin 4.0 Internacional, excepto
cuando se indique lo contrario.
5 de 5
20/01/17 15:27