Beruflich Dokumente
Kultur Dokumente
---------------
Una expresión está compuesta por operadores, variables y constantes. Para simplificar,
podemos pensar que la forma en la que C evalúa esta expresión es dividiendo el todo en
subexpresiones. Las reglas que definen que subexpresión evaluar primero, se
denominan reglas de precedencia. Aunque siempre podemos alterar dichas reglas
mediante la utilización de paréntesis. En la siguiente tabla detallamos la precedencia
entre los operadores de C.
Capítulo 6:
Operadores
Enlaces patrocinadosDiplomado En Coaching Ont
Conviertete En Coach Internacional Avalado por la U.N.A.M. y Flapco.
www.cocrear.com.mx
OPERADORES
Existe otro tipo de operador denominado molde que su función es hacer posible que una
expresión sea de un tipo determinado utilizando la sintaxis (tipo) expresión;
Siendo tipo uno de los tipos estándar de C (ver capítulo 4). Por ejemplo, si se quiere
asegurar que la expresión x/2 se evalúe de tipo float, se puede escribir: (float) x/2;.
6.1 Operadores aritméticos
+ Suma
- Resta
* Producto
/ Cociente de una división
% Resto de una división
== Igual a
!= No igual a
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
===
++ m++ m=m+1
-- m-- m=m-1
+= m+=n m=m+n
-= m-=n m=m-n
*= m*=n m=m*n
/= m/=n m=m/n
%= m%=n m=m%n
Por ejemplo:
int x=1, y;
y=x++; /* y es 1 y x vale 2 */
int x=1, y;
y=++x; /* x vale 2 e y también vale 2 */
Los dos operandos deben ser del tipo entero, y mueve los bits de la expresion1 tantas
posiciones como se lo indique la expresion2 (en este caso hacia la izquierda).
() [] De izquierda a derecha
- ++ -- ! ~ * & sizeof(tipo) De derecha a izquierda
* / % De izquierda a derecha
+ - De izquierda a derecha
<< >> De izquierda a derecha
< <= > >= De izquierda a derecha
== != De izquierda a derecha
& De izquierda a derecha
&& De izquierda a derecha
|| De izquierda a derecha
?: De derecha a izquierda
= *= /= %= += -= &= <<= >>= De derecha a izquierda
, De izquierda a derecha
Tabla 3.5: Operadores a nivel de bit
Operador Acción
& AND a nivel de bit.
OR a nivel de bit.
Desplazamiento a la izquierda.
Desplazamiento a la derecha.
()[]- .
! ++ * & sizeof (operadores unarios)
*/%
+-
== !=
&
&&
?:
= += -= *= /= %=
,
Menor precedencia
2.2.3 Modificadores de tipo
§1 Sinopsis
Hemos señalado ( 2.2.1) que los modificadores opcionales que pueden acompañar a
los tipos básicos son: con signo, sin signo, largo y corto; y que se aplican con las
palabras clave. long, short, signed, unsigned. Por otra parte, la creciente
implementación de procesadores con longitud de palabra de 64 bits, hace suponer que
pronto se extenderán los tipos actuales incluyendo versiones extra-largas de los enteros
( Tipos extendidos).
§2 long
Sintaxis:
Descripción:
Cuando se utiliza este modificador sobre un int, crea un tipo que dobla el espacio de
almacenamiento utilizado para almacenar un int [1]. Cuando se utiliza para modificar
un double, define un tipo de dato de coma flotante, long double, con 80 bits de
precisión, no los 128 (2x64) que cabría esperar ( 2.2.4 Representación interna y
precisión).
§3 short
Sintaxis:
Descripción:
El modificador short se utiliza cuando se desea una variable menor que un int. Este
modificador solo puede aplicarse al tipo base int (si se omite el tipo base, se asume int
por defecto).
Ejemplos:
short int i;
short i; // equivale a: "short int i;"
§4 signed
Sintaxis:
Descripción:
El modificador de tipo signed define que el valor de una variable numérica puede ser
positivo o negativo. Este modificador puede ser aplicado a los tipos básicos int, char,
long, short y __int64. Según se indica en el ejemplo, si no se indica el tipo básico, el
modificador por si solo supone signed int.
Ejemplos:
Sintaxis:
Descripción:
Este modificador se utiliza cuando la variable sea siempre positiva. Puesto que no es
necesario almacenar el signo, el valor absoluto puede ser mayor que en las versiones
con signo. Puede aplicarse a los tipos base int, char, long, short e __int64. Cuando no
se indica tipo base, por defecto se supone que se trata de un int (ver los ejemplos).
Ejemplos:
unsigned int i;
El cuadro adjunto muestra la propuesta existente para los citados modificadores. Como
puede verse, siguiendo la tradición, se supone int si no se indica otro tipo base. Además
por defecto long long se supone con signo.
Este compilador C++ de Borland permite especificadores opcionales para los enteros,
más allá de lo especificado en el estándar (alguno en línea de los nuevos tipos que se
esperan). Estos modificadores opcionales permiten definir el tipo de almacenamiento
que se utilizará para el entero. Para utilizarlos es preciso usar también los sufijos que se
indican en cada caso:
Sufi Almacenami
Tipo Ejemplo
jo ento
__int32 i =
__int32 i32 32 bits
123456789i32;
__int64 big =
__int64 i64 64 bits
12345654321i64;
unsigned
__int64
ui64 unsigned __int64