180 likes | 403 Views
Programación. Unidad 2 Operadores. Antes de empezar …. ¿Cuál es la diferencia entre un operador y un operando? ¿Cuántos y cuáles operadores están definidos en C?. Operadores unarios. Estos operadores solamente se aplican a una variable. Incremento y decremento como prefijo y sufijo.
E N D
Antes de empezar … • ¿Cuál es la diferencia entre un operador y un operando? • ¿Cuántos y cuáles operadores están definidos en C?
Operadores unarios • Estos operadores solamente se aplican a una variable. • Incremento y decremento como prefijo y sufijo. • Operación de cambio de signo. • Operación de negación. • Operaciones de casting (casteo).
Operadores de incremento y decremento unario • Estos operadores corresponden al uso de «++» y «--» antes (prefijo) o después (sufijo) de la variable. • Si ++a, la jerarquía es superior a los operadores aritméticos. • Si es a++, la jerarquía es la menor a todas las operaciones. • Restricciones • Estos operadores solamente se aplican a variables
Operadores de cambio de signo • Este operador no debe confundirse con la resta. Tiene la misma jerarquía que el incremento como prefijo. • Ejemplo. • -15, es un cambio de signo al valor 15, cuyo resultado es -15. • 8 – 2, resta cuyo resultado es 6. • 2 – -1, es la resta de 2 (–(-1)), igual a 2 + 1, cuyo resultado es 3.
Operadores de negación • En el Lenguaje de Programación C, todo valor falso es tiene el valor numérico 0 y todo valor verdadero es 1 o diferente de 0. • Todo aquello que no es falso, es verdadero. • Todo aquello que no es 0 es verdadero. • El operador de Negación hace falso lo verdadero, y hace verdadero lo falso.
Operadores de incremento y decremento unario • Ejercicios. • 2 – 8 • !-3 • !0 • (s = (25 * 2 + 1) - ++a))-- • —16 + 5 * b++ (Suponga b = 1) • --a * 2 > !((15 / 3) / 2) (Suponga a = -2)
Operadores de bits • Estos operadores realizan expresiones a nivel lógico, que bien pueden representar operaciones aritméticas. • Operador AND & • Operador OR | • Operador de corrimiento hacia la derecha >> • Operador de corrimiento hacia la izquierda <<
Operadores de bits • Operación & (AND) se efectúa de la siguiente manera. 0101 (decimal 5) & 0001 (decimal 1) 0001 (decimal 1) • En el caso donde ambos bits sean 1, el operador dará como resultado 1, de lo contrario 0.
Operadores de bits • Operación & (OR) se efectúa de la siguiente manera. 0101 (decimal 5) |0001 (decimal 1) 0101 (decimal 1) • En el caso donde ambos bits sean 0, el operador dará como resultado 0, de lo contrario 1.
Operadores de bits • Operación de corrimiento de bits a la derecha >> se efectúa de la siguiente manera. • 5 >> 1, indica que al valor binario 0101, se le desplazará un bit a la derecha, el resultado es el valor binario 0010, que representa el valor decimal 2.
Operadores de bits • Operación de corrimiento de bits a la izquierda << se efectúa de la siguiente manera. • 5 << 1, indica que al valor binario 0101, se le desplazará un bit a la izquierda, el resultado es el valor binario 1010, que representa el valor decimal 10.
Operadores de corrimiento de bits • Ejercicios. • 10 & 6 • 7 | 2 & 1 • 2 << 1 & 3 • (6 >> 1) << 2
Operadores de casting • Estas operaciones se refieren a transformar el resultado de un valor a algún tipo de dato, para evitar pérdida de información. • El caso de divisiones y multiplicaciones enteras evitan la parte fraccional. • Declaraciones asumidas como tipos de datos que no corresponden. • El casting se puede realizarse de manera implícita o explícita.
Operadores de casting • Restricciones • El casting de un tipo de dato de mayor capacidad a uno de menor generará perdida de información. • Casting de tipos de datos enteros a punto flotante no tiene problema, viceversa genera perdida de información (parte fraccional).
Operadores de casting • Casting implícito, indicar el tipo de dato por medio de una letra. • double m = 35.6F; • float l = 58.12f; • Casting explicito se refiere a anteponer el tipo de dato al valor o variable. • (float)7 / (float)2
Operadores de casting • Ejercicios. • (float)(15 / 2) • ++2 / 1 * 6.5 • int i = 2 * 6.5; • float d = (15 / 2)