Ads 468x60px

Perfil

lunes, 17 de octubre de 2011

Operadores avanzados


El lenguaje C dispone de varias clases de operadores, algunos para operaciones a nivel de bits, otros para funciones menos convencionales.

8.1 Operadores de aritmética de bits


Efectúan operaciones aritmético-lógicas (AND, OR, desplazamientos) sobre los bits de datos enteros. Son estos:

A & B AND de los bits de A y B
A | B OR de los bits de A y B
A ^ B XOR de los bits de A y B
A >> B desplazamiento a la derecha B posiciones de los bits de A
A << B desplazamiento a la izquierda B posiciones de los bits de A
~A negación (NOT) de los bits de A

Estos operadores trabajan a nivel de bits, no hay que confundirlos con los operadores lógicos (como && o || ).


También existen operadores abreviados, como

A >>=B equivale a: A = A>>B
A &= B equivale a: A = A&=B

8.2 Operador condicional o triádico


Tiene la forma:

expresión ? expresión1 : expresión2

Se utiliza como un if dentro de expresiones.
Su resultado es: si expresión es no nula, se evalúa y devuelve expresión1. Si expresión es nula, se evalúa y devuelve expresión2.

Ejemplo:

         minimo = ( x<y ? x : y );

El uso de este operador es superfluo, dado que el if ya resuelve la ejecución condicional. Es conveniente, si se emplea, utilizar paréntesis para evitar ambigüedades.

8.3 Operador coma


Varias expresiones se pueden agrupar separadas por comas:

expr1, expr2, expr3

El resultado es que se evalúan todas las expresiones y se devuelve como valor la de más a la derecha.
El único uso razonable de este operador es en sentencias for:

         for ( x=0, y=0; x<100; x++, y++ )
         { ... }

0 comentarios: