Tutorial de Java en español – Operadores

en java hay de tres tipos.

1. unarios

2. binarios

3. terciario

Los operadores unarios son :

~ : que es la inversion d bits

! : que es la negacion logica.

() : el operador de conversion de tipo.

++ : el operador de post y preincremento.

+ : el operador de idempotencia.

– : el operador negacion numerica.

Orden de evaluación

Implica la tarea que hace el compilador para saber si la sintaxis del codigo es correcto.

Ejecucion de operaciones :

Se rigen por las reglas de precedencia y asociatividad.

Por ejemplo , cuando se hace una multiplicacion y division de la siguiente forma :

r = x*y/x

Es preferible agrupar las multiplicaciones primero, a pesar que puede producirse un desbordamiento.

r = (x*y)/x

Aqui hay dos situaciones :

– Si x*y no sobrepasan el valor maximo del tipo int (32 bits) , entonces se debe ejecutar agrupar la multiplicacion.

– Si x*y sobrepasan el valor maximo del tipo int (32 bits) , entonces se debe ejecutar agrupar la division.

Esto se produce por las limitaciones fisicas del hardware. Sin embargo si tomamos nuestro papel y ejecutamos esas operaciones, (aunque demore mucho tiempo) el resultado sera el correcto es decir “y”.

Operadores unarios

En java son 7 (como las notas musicales, los dias de la semana , etc)

Operadores ++ y —

Trabajan con un valor interno que llamaremos “valor almacenado” que es el valor que podra transferirse a otra variable.

El resultado final de ejecutar la operacion es guardado en la misma variable y no se transfiere a otra variable.

Si el operador ++ ó — esta antes del operador, el valor almacenado es incrementado o decrementado antes que la variable.

Si el operador ++ ó — esta despues del operador, el valor almacenado es incrementado o decrementado despues que la variable.

La regla es que una vez que la variable se ha incrementado o decrementado, se procede a transferir el “valor almacenado” hacia otra variable.

Si se ve de forma grafica, el operador ++ ó — contiene el “valor almacenado” y segun su ubicacion en la expresion se asignara a la variable destino.

Si x=2 y  la variable destino es y.

Para un post-incremento

y = x++;

Podriamos pensarlo como (no en codigo, sino como idea) :

(y = x)++  (y seria 2)

Para un pre-incremento

y  = ++x;

Seria :

(y = ++)x;  (++ es el valor almacenado : 3)

El operador !

Aplica la negacion logica de una expresion y da como resultado el valor negado del operador.

El operador ~

Se aplica a valores enteros y realiza una inversion de bits de una expresion.

El operador ()

Se usa para la conversion explicita de tipo de una expresion.

Esto es posible para ciertos tipos de destino.

Operadores aritmeticos

Son de menor precedencia que los unarios.

Ademas existen dos grupos : * , / y % que son de mayor precedencia que : + y –

Solo los operadores / y % pueden lanzar un ArithmeticException.

Las operaciones de * y / seran calculadas usando para el resultado una variable implicita de tipo int o long segun el caso.

Por ejemplo si se hace una multiplicacion entre :

tipo menor que int * tipo int;

la variable implicita debe ser de tipo int

Si el tipo de algun operador es de tipo long, entonces el otro operador sera promovido a long y el tipo de la variable implicita sera long tambien.

Los operadores pueden tener cualquier tipo numerico primitivo , incluyendo char ( 16 bits sin signo, alamcena solo un caracter en unicode).

Si el valor de una operacion arroja como resultado un valor que sobrepasa el rango del tipo de la variable que almacena el resultado, en esta variable se alamcenara el valor trucado del resultado.

En el caso de una division entera, el valor del resultado debe convertirse al tipo de la variable que alamacena el resultado.

si a=3 y b = 4

r = a/b = 0.75 , r tendra el valor de cero porque la variable implicita que almacena el resultado 0.75 es convertida a int, perdiendose la parte fraccionaria y por lo tanto la precision.

Operador %

Trabaja con todos los numeros de tipo entero y fraccionaria.

El signo del resultado esta determinado por el signo del operador de la izquierda.

int x = 12;
int y = -5;
int r = x % y;
System.out.println( "r=" + r ); // r=2 (!)
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s