Clase digital 8. Operadores aritméticos y lógicos, conversión de datos explícitos e implícitos, precedencia de operaciones

Portada » Clase digital 8. Operadores aritméticos y lógicos, conversión de datos explícitos e implícitos, precedencia de operaciones

Operadores aritméticos y lógicos, conversión de datos explícitos e implícitos, precedencia de operaciones

Introducción

Estudiantes de programación en Lenguaje C, sean bienvenidas y bienvenidos, en cada sesión estas avanzando en el conocimiento sobre el uso de enunciados y expresiones, uso de la semántica y sintaxis utilizada en este lenguaje.

  • Operadores aritméticos
  • Operadores de asignación
  • Operadores matemáticos unarios
  • Operadores matemáticos binarios
  • Operadores de asignación compuestos
  • Precedencia de operadores y uso de paréntesis
  • Precedencia de operadores
  • Operadores lógicos
  • Conversión de datos
    •  Conversión implícita
    •  Conversión explicita

También encontraras algunos ejemplos escritos en lenguaje C. Para que puedas copiarlos en tu compilador seleccionado y pruebes su funcionamiento.

¡Iniciemos y avancemos en el conocimiento!

Desarrollo del tema

Operadores aritméticos

Un operador es un símbolo que le da instrucciones al Lenguaje C para que ejecute una acción.

En una expresión de Lenguaje C podemos ver dos elementos: el operador y el operando. El operando es el elemento sobre el cual actúa el operador.

Operador de asignación

El operador de asignación, es el signo de igual ( = ).

Asignar significa pasar el valor.

Ejemplo:

x = y ;   // Esta expresión en las matemáticas normales significa; x es igual a y, sin embargo, en un lenguaje de programación significa: asignar el valor de y a x.

Ejemplo:

x = 8;     // x tiene el valor de 8

y = 9;    // y tiene el valor de 9

x = y;    // y es igual a x significa qué, x ahora tiene el valor de 9   

Operadores matemáticos unarios

Se les llama unarios debido a que toman solo un operando.

SímboloOperadorDescripciónEjemplo
++IncrementoIncrementa el operado en 1++x, x++
DecrementoDecrementa el operando en 1–x, x–
Cambio de signoCambia de signo al operando-6

El operador unario negativo invierte el signo de una expresión, de positivo a negativo o viceversa. El resultante en el operando es el de multiplicar el número por -1.

Ejemplos:

a = -6;

x = 8;

y = 10;

++x; // Su valor ser 9

–y; //Su valor ser 9

Estas expresiones de “++x” y “—y” son equivalentes a:

x = x + 1;

y = y – 1;

Se debe tener cuidado con el uso del prefijo y del posfijo de incremento o decremento:

  • Al usar el símbolo en modo de prefijo, los operadores de incremento y decremento modifican a su operando antes de que sea usado.
  • Al usar el símbolo en modo de posfijo, los operadores de incremento y decremento modifican su operando después de que es usado.

Ejemplo: Uso de operadores unarios con demostración de uso de prefijo y posfijo.

Operadores matemáticos binarios

Son las operaciones matemáticas comunes.

SímboloOperaciónDescripciónEjemplo
+sumaSuma los dos operandosa + b
restaResta el segundo operando del primeroa – b
*multiplicaciónMultiplica los dos operandosa * b
/divisiónDivide el primer operando entre el segundoa / b
%móduloDa el residuo cuando el primer operando es dividido entre el segundo.a % b

La operación de módulo regresa el residuo cuando el primer operando es dividido entre el segundo operando:

Ejemplo:

50 módulo de 7 el residuo es 1

50 módulo de 5 el residuo es 0

Operadores de asignación compuestos

Los operadores de asignación compuestos combinan una operación matemática binaria con una operación de asignación.

El enunciado para los operadores de asignación compuesto tiene la sintaxis:

expresion1 operacion= expresion2 equivalente a: expresion1 = expresion1 operacion expresion2;

Haciendo uso de estos operadores se podrían escribir esas expresiones de forma abreviada:

z = z + 5 equivalente z +=5

x = x * ( y – 2) equivalente x*= y-2

Algunos ejemplos de enunciados quedan como se muestra en la siguiente tabla:

Operador de asignación compuestoEquivalente a
x *= yx = x * y
z += x – 1y = y + z – 1
x /= bx = x / y
x += y / 5x = x + y / 8
x %= 6y = y % 6

Ejemplo uso de operadores de asignación compuesta.

Precedencia de operadores

Precedencia se refiere al orden en que se ejecutan las operaciones:

Por ejemplo, en la siguiente expresión:

a = 7 + 3 * 5;    

Si primero se ejecuta la multiplicación tenemos a = 7 + 15; y entonces se le asigna 22 como valor a la variable a.

Ahora si primero se ejecuta la suma tenemos a = 10 * 5; y entonces se le asigna 50 como valor a la variable a.

OperadorPrecedenciaDescripción
++  —1Incremento y decremento unario
* /  %2Multiplicación, división y módulo
+  –3Suma y resta

Las operaciones con precedencia 1 se realizan antes que las de menor precedencia 3. Si en una operación encontramos signos del mismo nivel de precedencia, la operación se realiza de izquierda a derecha.

Por ejemplo:

x = 50 % 7 * 8;

Módulo y multiplicación son del mismo nivel de precedencia, al ejecutar de izquierda a derecha la expresión se ejecuta:

x = 1 * 8;

x = 8;

Precedencia y uso de paréntesis

Si una expresión no se evalúa con la precedencia que se espera se puede hacer uso de los paréntesis.

Ejemplo 1:

a = (30 + 6) * 3;

a = 36 * 3;

a = 108;

Ejemplo 2: Evaluación de precedencia con paréntesis y operadores de mismo nivel.

La evaluación que hace el Lenguaje C para interpretar el resultado de comparación de operandos es 0 si la expresión es falsa y 1 si la evaluación de la expresión es verdadera. La evaluación de la operación == (igual

igual) no debe confundirse con el de asignación = (igual).

Los operadores relacionales tienen menor precedencia que los operadores matemáticos.

Aquí te muestro la tabla de orden de precedencia de los operadores relacionales de Lenguaje C.

Operadores lógicos

Los operadores lógicos permiten realizar combinaciones de dos o más expresiones relacionales en una sola expresión y la evaluación de esta expresión es verdadero (1) o falso (0).

Ejemplos:

Expresión  Evaluación
(7  ==  7)   &&   (5  ¡=  3)  Verdadero (1) ambas expresiones son verdaderas.
(6  >  4)   ||  (4  < 2)Verdadero (1) al menos una expresión es verdadera.
! (8  == 5)Verdadero (1) la expresión es falsa

Precedencia de operadores lógicos

SímboloPrecedenciaDescripción 
¡1Precedencia igual a los operadores matemáticos unarios ++  y  –, por tanto, tiene precedencia mayor a los operadores relacionales y operadores matemáticos binarios.     
&&2Tiene menor precedencia que todos los operadores matemáticos y relacionales, pero tiene mayor precedencia que ||
II3Tiene menor precedencia que todos los operadores matemáticos y relacionales, y tiene menor precedencia que &&

Conversión de tipos de datos

Implícita: se realiza automáticamente

Explicita: la controlada por la sintaxis de programación

Para la conversión de tipos de datos, lo mejor es haber comprendido previamente los tipos de datos y su tamaño, si aun te queda claro este tema, te invito a volver a repasar los tipos de datos antes de seguir con el tema de conversiones de tipos de datos.

Conversión implícita

Los datos pueden convertirse en las siguientes situaciones:

Conversión explicita

Conversión creada por el programador: (tipo) Expresión

Ejemplo:

float diferencia;

int minuendo, sustraendo;

diferencia = minuendo – sustraendo;

La conversión explícita se expresa como:

float diferencia;

int minuendo, sustraendo;

diferencia = (float) minuendo – sustraendo;

Operador sizeof ()

Lenguaje C incorpora el operador sizeof, que permite conocer el tamaño en bytes.

Por definición el tipo char tiene tamaño de 1 byte. Para otros tipos de datos básicos su tamaño puede variar entre diferentes arquitecturas.

La función del operador sizeof devuelve el tamaño de tipo de dato o de una variable. Ejemplo:

sizeof (char)

sizeof (a)

Para seguir aprendiendo en la práctica cómo funciona la conversión de tipos de datos, te invito a analizar los siguientes videos: Sanlegas.[@issale99](26/09/2015).

codigofacilito.[@codigofacilito](26/01/2017).9.- Curso Básico de C – Palabras Reservadas y Conversión de Tipos de Datos[Video].Youtube.

Conclusión

En esta sesión aprendiste sobre el uso de operadores aritméticos (matemáticos) en el lenguaje de programación en C.

Estas operaciones aritméticas permiten realizar operaciones sobre sus operandos, cada operación que se ejecuta sobre un operando genera un resultado que se almacena en alguna posición de memoria, El resultado que genera (valor) es una representación interna del que dependerá de los tipos de los operadores.

Recuerda las precedencias y orden que existe entre los operadores aritméticos, lógicos y relacionales, y que entre ellos puedes hacer uso de paréntesis para separar expresiones de precedencia. Recuerda el uso de la conversión de uso de datos.

¡Sigue practicando!

Fuentes de información