lunes, 4 de octubre de 2021

Operadores en C

 http://lsi.vc.ehu.es/pablogn/docencia/FdI/FdIc/labs/a1/htm/oper.html

Operadores en C



Atrás

Operadores en C

Operadores de asignación

La operación más importante en cualquier lenguaje de programación es la asignación:

DdFCDescripción
=Asignación

En C hay muchos operadores de asignación que serán en realidad simplificaciones de expresiones más complejas, como las auto-operaciones (+=-=*=/=&=, ...) y los pre/post incrementos/decrementos (++--).

En general estas expresiones no podrán ser utilizadas en los diagramas de flujo.

Operadores aritméticos

Cabe destacar que se diferencian la división entera y la división real, según los operandos.

DdFCDescripción
++Suma, adición
--Resta, sutracción
.*Multiplicación, producto
Div/Cociente división entera
Mod%Resto división entera
//División

Operadores relacionales

DdFCDescripción
>>Mayor
>=Mayor o igual
<<Menor
<=Menor o igual
===Igual
!=Diferente

Operadores lógicos

Los operandos son considerados falsos (valor 0) ó ciertos (valor distinto de 0). El resultado siempre es 0 ó 1.

DdFCDescripción
^&&And, y, conjunción
||Or, o, disyunción
¬!Not, no, negación

Para estudiar el resultado se utilizan las tablas de verdad.

Operadores bit a bit

Afectan a los operandos bit a bit, por lo que se aplica la operación lógica a cada uno de ellos. El resultado bit a bit es 0 ó 1 pero la composición de estos resultados no tiene porqué ser 0 ó 1, como era el caso en los operadores lógicos.

DdFCDescripción
AndBB&And bit a bit
OrBB|Or bit a bit
CompBB~Complemento a uno o negación bit a bit
XorBB^O-exclusiva bit a bit

Las tablas de verdad, aplicadas bit a bit a los operandos, son:

Operador condicional

Es un operador ternario, es decir, tiene tres operandos.

Su funcionamiento es el siguiente: para una ejecución ? e1 : e2 siendo ce1 y e2 tres expresiones,

  • Se evalúa c
    • Si el resultado es cierto (es decir, distinto de cero)
      • se evalúa e1 y éste sera el resultado.
    • Si no (el resultado es falso o cero)
      • se evalúa e2 y éste sera el resultado.

Ejemplos. Para x = 4y = 2z = 7:

  • La expresión x >= 5? 1:0 se evalúa a 1
  • La expresión x >= 5? y:z se evalúa a 7
  • La expresión x <= 5? y:z se evalúa a 2
  • La expresión x ? z+y:z-y se evalúa a 9
  • La expresión x >= 0 ? sqrt(x):0 se evalúa a 2.0 (sqrt: raíz cuadrada, prototipo en math.h)
DdFCDescripción
: ?: ?Operador condicional ? e1 : e2

Precedencia y asociatividad

Atrás

No hay comentarios:

Publicar un comentario