jueves, 9 de junio de 2011

TIPOS PRIMITIVOS Y MAS

Tipos primitivos
En la siguiente tabla se indica para cada tipo primitivo el número de bits que se emplea en su representación y el rango de valores que se puede almacenar en las variables de estos tipos.


Tipo Bits Rango Ejemplos
int 32 -2**31 .. 2**31-1 0, 1, 5, -120, ...
short 16 -2**15 .. 2**15-1 0, 1, 5, -120, ...
byte 8 -2**7 .. **7-1 0, 1, 5, -120, ...
long 64 -2**63 .. 2**63-1 0, 1, 5, -120, ...
boolean 1 n/a false, true
char 16 n/a 'a', 'A', '0', '*', ...
float 32 IEEE 1.2
double 64 IEEE 1.2

Se dice que un tipo A es de mayor rango que un tipo B si A es un superconjunto de B. Esto quiere decir que las variales de tipo B siempre se pueden asignar a variables de tipo A (eventualmente con pérdida de significancia).

Por ejemplo int es de mayor rango que short, que a su vez es de mayor rango que byte. Float y double son de mayor rango que int. Double es de mayor rango que float.

Esto se puede resumir en:


double > float > long > int > short > byte


--------------------------------------------------------------------------------


Expresiones
En Java cada expresión tiene un tipo que se determina durante la compilación, es decir es independiente del valor durante la ejecución. Una expresión puede ser:


Una constante: 1, 1.0, true, etc.
El tipo de esta expresión es el tipo de la constante. En el ejemplo los tipos son int, double y boolean respectivamente.


Una variable: i, s, a
El tipo de esta expresión es el tipo con que se declaró aquella variable. En el ejemplo los tipos son entero, referencia a string y referencia a arreglo.


El resultado de una operación: i+1, a[1], etc.
El tipo se determina en función de los tipos de las expresiones que se indican como argumentos de la operación.

Java tiene prácticamente los mismos operadores de C y C++. Cada operador acepta una, dos o tres expresiones de diversos tipos. A veces un operador no está definido para argumentos de ciertos tipos. Por ejemplo la resta entre strings no esta definida. Pero la suma de strings esta definida como la concatenación. A continuación veremos los operadores más frecuentes en Java.
Operadores binarios entre expresiones numéricas
Símbolo Operación
+ Suma
- Resta
* Multiplicación
/ División
% Resto


Los operandos y el resultado de estos operadores pueden ser:


Dominio Rango
int*int int
long*long long
float*float float
double*double double

Al operar con byte y short, estos se convierten implícitamente a int.
Cuando los tipos de los operandos no coinciden, el operando de menor rango se convierte implícitamente al tipo de mayor rango. El resultado de la operación es del tipo de mayor rango.
Ejemplos:
int a=1, b=2;
int c= a + b;

short s= 1;
int d= s + c; // s se convierte a int

float f= 1.0 + a; // a se convierte a float

No hay comentarios:

Publicar un comentario