Descubre Cómo Utilizar Diferentes Operadores en C para Programar Como un Expertopost-template-default single single-post postid-46 single-format-standard et_pb_button_helper_class et_fixed_nav et_show_nav et_secondary_nav_enabled et_primary_nav_dropdown_animation_fade et_secondary_nav_dropdown_animation_fade et_header_style_left et_pb_footer_columns4 et_cover_background et_pb_gutter et_pb_gutters3 et_right_sidebar et_divi_theme et-db
771 715 4434

En programación de computadoras, un operador es un carácter, símbolo, palabra clave o combinación de estos. Un operador es un símbolo que se utiliza para realizar operaciones con operandos. Determina qué acción se realiza en uno o más operandos. Un operando es un elemento de datos individual que es manipulado por el operador. Las operaciones pueden ser matemáticas o lógicas. Cada lenguaje de programación de alto nivel define estos caracteres integrados y los utiliza para indicar al compilador que realice operaciones aritméticas, relacionales o lógicas que manipulan elementos de datos y luego devuelven un resultado final.

En la programación en C, los operadores caen en una de tres categorías: Operadores Unarios, Operadores Binarios, Operadores Ternarios. Existen diferentes tipos de Operadores en el Lenguaje C, Aritméticos, Monarios, Relacionales y Lógicos, de Asignación, Operador Condicional -también conocido como Ternario-. La mayoría son familiares, funcionan igual que en papel, 5 + 5 dará como resultado 10, 5 -3 dará como resultado 2. Una misma operación puede tener más de un operador.

Las condiciones para usarlos, las lógicas, es que sean usados con operandos que representen valores numéricos, variables del tipo int, float, double, char.

Tipos de Operadores en C

A continuación, se presenta un resumen de los principales tipos de operadores en C:

Tipo de Operador Operadores Descripción
Aritméticos +, -, *, /, % Realizan cálculos matemáticos en datos numéricos como la adición, sustracción, multiplicación, división y encontrar el resto.
Monarios ++, --, - (negación), ~ (bitwise NOT), ! (logical NOT) Operan sobre un solo operando. El operador de incremento (++) incrementa el valor del operando en 1. El operador de decremento (--) decrementa el valor del operando en 1. El operador monario «-» cambia el signo del operando.
Relacionales/Igualdad ==, !=, >, <, >=, <= Comparan dos valores y determinan si un operando es mayor que, menor que, igual a o no igual a otro operando.
Lógicos && (AND), || (OR), ! (NOT) Permiten introducir nexos entre condiciones. Combinan dos o más restricciones o condiciones.
Asignación =, +=, -=, *=, /=, %= Asignan un valor específico a una variable.
Condicional (Ternario) ?: Opera en tres operandos. Funciona como abreviatura para if..else y realiza comparaciones generando un resultado.
Bit a bit &, |, ^, <<, >>, ~ Realizan operaciones a nivel de bits sobre operandos. Tratan los elementos de datos como una secuencia de bits.
sizeof sizeof Determina el tamaño de una variable.
Coma , Activa la ejecución de una secuencia de operaciones, expresando el primer operando y descartando el resultado.

Operadores Aritméticos

Son los tipos de operadores que se utilizan para realizar operaciones matemáticas/aritméticas. En la declaración, x e y son los operandos mientras que + es un operador de suma. Operadores aritméticos como el operador de incremento (++) incrementa el valor del operando en 1. Y el operador de decremento (--) decrementa el valor del operando en 1.

Lea también: IVA 21% Excel

Operadores Monarios

Se denominan así porque afectan a un solo operando (mono = uno). Operadores unarios operan sobre un solo operando. Podemos encontrar el operador monario «-» (menos) que es diferente a la resta, ya que no efectúa una operación de sustracción sino que únicamente cambia el signo del operando (como al multiplicar por -1).

Operadores Relacionales o de Comparación

Se llaman operadores relacionales o de comparación a aquellos que permiten comparar dos valores evaluando si se relacionan cumpliendo el ser menor uno que otro, mayor uno que otro, igual uno que otro, etc. En ocasiones es necesario comparar dos datos en un programa, y en base al resultado de la comparación se toma una acción. El operador relacional se encarga de relacionar dos datos en el programa, es decir, compararlos mediante una expresión. El resultado será un valor del tipo booleano, que se expresa como verdadero (1) o falso (0). Este tipo de operadores normalmente se utilizan para realizar acciones distintas en el programa dependiendo del resultado de la comparación.

Es importante tener en cuenta que para comparar si una variable A es igual a otra debemos usar A == B en lugar de A = B. Para determinar si una variable A tiene distinto contenido que una variable B debemos usar A != B. Estos tipos de operadores realizan comparaciones entre operandos. Por ejemplo, es posible que necesite saber qué operando es mayor que el otro o menor que el otro.

Los operadores binarios relacionales y de igualdad comparan su primer operando con su segundo operando para probar la validez de la relación especificada. El resultado de una expresión relacional es 1 si la relación probada es true y 0 si es false. Los operandos pueden tener un tipo entero, flotante o de puntero. Los tipos de los operandos pueden ser diferentes. Los operadores relacionales realizan las conversiones aritméticas habituales en operandos enteros y de tipo flotante.

Todos los operadores relacionales admiten como operandos los que pertenezcan a tipos atómicos, incluyendo las enumeraciones. El resultado de los operadores relacionales es siempre lógico, esto es, un valor verdadero (no nulo) o falso (nulo). La comparación de caracteres sigue la secuencia definida por el código ASCII.

Lea también: Guía IVA reducido

Comparación de Punteros

Ambos operandos de cualquier operador relacional o de igualdad pueden ser punteros al mismo tipo. Para los operadores de igualdad (==) y desigualdad (!=), el resultado de la comparación indica si los dos punteros abordan la misma ubicación de memoria. Para los otros operadores relacionales (<, >, <= y >=), el resultado de la comparación indica la posición relativa de las dos direcciones de memoria de los objetos a los que apunta. La comparación de punteros solo se define para partes del mismo objeto. Si los punteros hacen referencia a miembros de una matriz, la comparación es equivalente a la comparación de los subíndices correspondientes. La dirección del primer elemento de matriz es "menor que" la dirección del último elemento. En el caso de las estructuras, los punteros a los miembros de estructura declarados más adelante son punteros "mayores que" a los miembros declarados anteriormente en la estructura. Un valor de puntero se puede comparar con el valor constante 0 para la igualdad (==) o la desigualdad (!=). Los operadores de igualdad siguen las mismas reglas que los operadores relacionales, pero permiten más posibilidades: un puntero se puede comparar con una expresión integral constante con el valor 0 o un puntero a void. Si dos punteros son punteros NULOs, se comparan como iguales.

Operadores Lógicos

Los operadores lógicos permiten además introducir nexos entre condiciones como “y se cumple también que” ó. Combina dos o más restricciones o condiciones. Los operadores lógicos también complementan la evaluación de la condición original en cuestión. Operadores lógicos como el operador NOT (!) invierte el valor lógico del operando: cambia true a false y false a true. Los operadores lógicos se utilizan comúnmente en declaraciones condicionales (como las declaraciones if..else), ya que ayudan en la toma de decisiones: determinan qué acción debe tener lugar y qué código debe ejecutarse a continuación según las condiciones que establezcas.

Combina los operadores lógicos con una o múltiples condiciones para crear una expresión lógica. Los operadores lógicos evalúan la expresión lógica y devuelven un resultado. En el lenguaje C, a diferencia de otros, como Java, no posee como tal un tipo «booleano», o sea un «True»-Cierto- o «False» -Falso-, sin embargo, al hacer este tipo de operaciones, nos devuelve, en lugar de True, un 1 si la comparación o la operación booleana da como resultado un positivo, y 0 si da un negativo. Los operadores lógicos admiten operandos lógicos, esto es, de valor verdadero o falso según el criterio habitual en C (nulo es falso, no nulo es verdadero). No se puede afirmar nada acerca de la estructura de bits del resultado; solo se sabe que será falso o verdadero en los términos anteriores. Se interpreta como verdadero cualquier valor no nulo.

Evaluación de Expresiones Lógicas (Cortocircuito)

Las expresiones lógicas se evalúan de izquierda a derecha (esto es, primero se evalúa el operando de la izquierda, luego el de la derecha y finalmente se aplica el operador lógico). Una expresión de conjunción (&&, AND) es falsa en cuanto uno de sus operandos sea falso, independientemente del valor verdadero o falso del otro operando. En una expresión de disyunción (||, OR), si un operando es verdadero, entonces la expresión es verdadera, independientemente del valor verdadero o falso del otro operando.

Entonces, si se evalúa el primer operando de una conjunción, y es falso, la expresión es falsa. Si se evalúa el primer operando de una disyunción, y es verdadero, la expresión es verdadera. Cuando C se encuentra con una de estas situaciones, en las que ya es conocido el valor de la expresión sin evaluar el segundo operando, no evalúa el segundo operando y proporciona el valor (correcto, ciertamente) de la expresión. Esto se hace porque la evaluación del segundo operando requiere un cierto tiempo, que se ahorra de esta manera. Por tanto, al construir expresiones de conjunción o disyunción, se optimizan los tiempos de ejecución si se pone en primer lugar la condición de evaluación más rápida. Así se reduce al mínimo la cantidad de cálculos realizada.

Lea también: ¿Cómo localizar tus XML del SAT?

Operadores de Asignación

Su nombre es bastante explícito, le asignan un valor a una variable. Asignan valores a las variables. El operando o variable se agrega al lado izquierdo del operador, mientras que el valor se agrega al lado derecho del operador. La variable y el valor deben pertenecer al mismo tipo de datos; de lo contrario, el operador no puede asignar valores a las variables. En el ejemplo anterior, x es la variable/operando, = es el operador de asignación mientras que 5 es el valor.

Para ilustrar el uso de asignación e incremento:

  • Declarando dos variables enteras a y B.
  • Asignación de valor a la variable b.
  • Incrementar el valor de y y asignar el resultado a la variable x.
  • Comienza con y en 100, luego lo incrementa a 101 (y++).
  • Luego, se suma y a 10.
  • Finalmente, y, todavía en 101, se suma a 99, lo que da 200.

Operador Condicional (Ternario)

El operador Condicional, también conocido como Ternario, opera en tres operandos. La sintaxis general se parece a la siguiente: (condición) ? expresión1 : expresión2;. El operador ternario es un operador condicional que puedes usar como una abreviatura para if..else. Realiza comparaciones y genera un resultado. Así de simple es. Dentro de paréntesis hacemos una evaluación, de ser cierta vamos a la primer parte del «elemento:elemento2», de ser falsa, a la segunda.

Este tipo de operador tiene muchas aplicaciones, puede usarse para hacer asignaciones ‘bajo una condición’ -de ahí su nombre- o incluso lanzar una llamada a una función u otra, todo depende cómo lo querramos usar.

Operadores Bit a bit

Operadores bit a bit realizan operaciones a nivel de bits sobre operandos. Primero, los operadores se convierten a nivel de bits y luego se realizan las operaciones sobre los operandos. Cuando se realizan operaciones aritméticas como la suma y la resta, las operaciones se realizan a nivel de bits, lo que permite obtener resultados más rápidamente. Los operadores a nivel de bits tratan los elementos de datos como una secuencia de bits (es decir, 0s y 1s).

Adicionalmente, C ofrece operadores lógicos bit a bit. Téngase en cuenta que estos operadores llevan a cabo operaciones bit a bit, y que solo admiten como argumentos los de tipos ordinales (caracteres y enteros). El resultado está formado por el resultado de aplicar estos operadores a parejas de bits homólogos individuales en sus operandos.

  • & (AND): Toma 2 números (operandos) y luego realiza una operación AND en cada bit de los dos números. Aplica a los bits homólogos de sus operandos la conocida tabla de conjunción lógica, caracterizada porque el resultado solo es 1 cuando ambos bits valen 1; en todos los demás casos el resultado es 0.
  • | (OR): Toma 2 números (operandos) y luego realiza una operación OR en cada bit de los dos números. Aplica a los bits homólogos de sus operandos la tabla de disyunción lógica, caracterizada porque el resultado es 1 cuando uno o los dos bits valen 1; en los demás casos el resultado es 0.
  • ^ (XOR): Toma 2 números (operandos) y luego realiza una operación XOR en cada bit de 2 números. Aplica a los bits homólogos de sus operandos la tabla de conjunción lógica excluyente, caracterizada porque el resultado es 1 cuando solo uno de los bits es 1; en todos los demás casos el resultado es 0.
  • ~ (NOT): Invierte el valor de sus operandos, transformando el valor 0 en 1 y el valor 1 en 0. Esto se hace bit a bit!
  • << (Desplazamiento a la izquierda): Toma dos números y luego desplaza hacia la izquierda los bits del primer operando.
  • >> (Desplazamiento a la derecha): Toma dos números y luego desplaza a la derecha los bits del primer operando.

Los operadores ">>" y "<<" poseen dos operandos, ambos de tipo ordinal (carácter o entero). Al aplicar este operador, los bits del primer operando se desplazan tantas posiciones como indique el segundo operando. A efectos numéricos, se trata de dividir por dos (desplazamiento hacia la derecha) o de multiplicar por dos (desplazamiento hacia la izquierda). El primer operando no se ve afectado, aunque puede asignarse el resultado de la operación al primer operando. Los bits que "entran" por la derecha o por la izquierda son siempre ceros, esto es, no hay rotación de bits.

Construir un programa capaz de admitir un número entero para después desplazar sucesivamente sus bits. El programa mostrará el resultado del desplazamiento, escribiendo en pantalla el valor numérico asociado. Obsérvese que el último valor es cero. Esto se debe a que se han ido introduciendo ceros por la derecha; en el último desplazamiento, el 1 del octavo bit sale y es sustituido por el cero que había en el séptimo bit. También podría comenzar el ejercicio con el valor 128, efectuándose desplazamientos a la derecha. Téngase en cuenta que el número de bits de desplazamiento puede no ser 1: a efectos, esto permite estudiar (sin modificar) el valor de cualquiera de los bits que aparezcan en el primer operando.

Otros Operadores

Operador sizeof

Este operador determina el tamaño de una variable.

Operador Coma (,)

La operador de coma (,) activa la ejecución de una secuencia de operaciones. Expresa el primer operando y descarta el resultado.

tags: #como #declarar #diferente #en #c