Este artículo pertenece a Referencias de programación
Hola a todos,
En muchas ocasiones queremos realizar operaciones entre variables que bien por desconocimiento o bien por no caer en ese momento las implementamos con funciones del lenguaje (por ejemplo if) cuando se podrían implementar mucho más rápido y limpio con operadores.
Un operador es una función que se llama mediante un solo carácter. Ejemplo típico seria el operador de suma (+) o resta(-) pero hay muchos más.
Aquí os dejo la lista,espero no dejarme ninguno:
- Operadores aritméticos:
Los operadores aritméticos se basan en realizar operaciones matemáticas sencillas.
+: Suma. c = a + b, siendo c el resultado de la suma de a y b
-: Resta. c = a - b, siendo c el resultado de la diferencia entre a y b
*: Multiplicación. c = a * b, siendo c el resultado del producto de a y b
/: División. c = a / b, siendo c el resultado del cociente de a entre b
%: Módulo o resto. c = a % b , siendo c el resultado del resto de la división entera entre a y b.
Ejemplos:
a = 10 b = 5 c = 0
a = 10 b = 3 c = 1
NOTA: Todos estos operadores admiten el modificador =. Esto significa que si a y c son la misma variable (por ejemplo si estamos acumulando un valor en un variable ) podemos hacer el código más corto de esta manera.
+= , -= , *= , /= , %=
Utilizándose de esta manera: c += b que seria lo mismo que c = c + b
- Operadores lógicos:
Los operadores lógicos se basan en cierto o falso, representandose en forma de variable como:
0- falso
cualquier otro valor - cierto
!: Negación: if(!a). Si a es falso el resultado de !a será cierto.
||: OR: Si alguno de los dos operandos se cumple la condición resultante también se cumple .if( a || b )
&&: AND. Si los dos operandos se cumplen, la condición resultante también se cumple if(a&&b)
>: Mayor que
<: Menor que
NOTA : Todos estos operandos se pueden combinar en una sola condición. Por ejemplo
if ( !( a || (b && c) || !d ) && e )
- Operadores binarios:
Las variables se guardan en memoria en formato binario, es decir, como un conjunto de 0's y 1's. C nos permite trabajar directamente con estos bits , cosa muy útil en operaciones de bajo nivel.
~: Negación . a = ~b , a contendría la misma máscara de bits que b pero con todos sus valores al revés.
NOTA: Para conseguir el símbolo de ~ solo tenéis que darle a ALT+126 en el teclado numérico.
<< >> Desplazamientos de bits. c = a << b o c = a >> b . Siendo a una variable y b un número de btis a desplazar. Con esto todos los bits que se "salgan" del margen de la variable se pierden.
| : OR. c = a | b. c contendría la suma de los bits de a y de b, es decir, que si en a o en b hay un cierto bit a 1 también estará a 1 en c.
& : AND. c = a&b. c contendría la multiplicación binaria de a y b, es decir, que si en a o en b hay un cierto bit a 0, también estará a 0 en c.
^: XOR. Suma Exclusiva. c = a ^ b. Aplica la suma exclusiva entre a y b. La suma exclusiva es aquella en que el bit de salida solo es 1 si los dos bits de entrada son diferentes y es 0 si los dos bits de entrada son iguales.
NOTA: Igual que con los operadores aritméticos el modificador = funciona con estos operadores (a excepción de con el operador ~ que es unario)
>>=, <<= , |= , &=, ^=
- Operadores de punteros:
Básicamente hay dos tres operadores de punteros:
&: Obtener la dirección de memoria de una variable
*: Obtener el valor de la variable apuntada por un puntero
->: Equivale a (*struct). Es decir, a acceder a un campo de una estructura de la cual tenemos solamente su puntero.
Consideraciones generales:
- Usar operadores de forma indiscriminada puede complicar la legibilidad del código (casi tanto como su no uso)
- Las diferencias entre operadores son sutiles (|| or logica, | or binaria) o directamente tienen más de un uso (* multiplicación aritmética. *valor de un puntero) que se decide por el contexto del código. Incluso con experiencia en programación, es muy fácil equivocarse.
- Un buen uso de operadores generará un código más compacto y fácil de mantener y de mayor rendimiento computacional.
- Las combinaciones que se pueden llegar ha hacer son asombrosas: investigad.
Creo que no me he dejado ningún operador, si me hubiera dejado alguno, decidmelo y lo añado.
Si algo no ha quedado suficientemente explicado decidmelo y lo intento explicar de otra manera.
Espero que os haya gustado
Nos vemos
Blog de programación enfocado a estudiantes principiantes de C/C++ en español. Dispone de cursos de todos los niveles y para multitud de usos.
martes, 19 de junio de 2012
Entradas populares
-
Una pregunta que me hacen en muchas ocasiones es ¿¿qué significa %2?? La respuesta tiene dos acepciones en función de si lo estamos u...
-
<< Ejemplo anterior Artículos Relacionados Ejemplo siguiente >> Hola a todos, ASCII Art es el hecho de hacer di...
-
Articulo perteneciente a : Referencias de programación Hola a todos Os pongo una aportación que a más de uno le irá bien, un resumen de ...
-
Capítulo perteneciente al tutorial de opengl desde cero Hola a todos, Este capítulo tal vez es de lo más complicados de la teoría necesa...
-
<< Ejemplo anterior Artículos Relacionados Ejemplo siguiente >> Hola a todos, El ejercicio de hoy se basa en c...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> Hola a todos, Este tutorial intenta ser e...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> Hola a todos... Un compañero vuestro ha...
-
Hola a todos... He aquí la primera entrega "Como crear tu propio motor de videojuegos y no morir en el intento". Antes que nada ...
-
Hola a todos Ya que he recibido un par de mails pidiéndome información sobre SEO, os adjunto unos cuantos trucos que he ido aprendiendo du...
-
<< Capítulo anterior Artículos Relacionados Capítulo siguiente >> El c apitulo de hoy trata sobre las instrucc...