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:
Publicar un comentario