Jerarquia de los operadores
OPERADOR PRIORIDAD
( ) MAS ALTA
NOT |
^ |
V
*,/,DIV,MOD,AND
MAS BAJA
+,-,OR,XOR
=,,,>=, 00101010
-42 -> 11010110
Existen dos operadores aritméticos que funcionan como atajo de la combinación de otros: ++ que incrementa su operando en 1, y-- que decrementa su operando en 1.
Ambos operadores tienen una versión prefija, y otra posfija. La utilización la correcta es crítica en situaciones donde el valor de la sentencia es utilizado en mitad de un cálculo más complejo, por ejemplo para control de flujos:
Operador | Uso | Descripción |
++ | op++ | Incrementa op en 1; se evalúa al valor anterior al incremento |
++ | ++op |Incrementa op en 1; se evalúa al valor posterior al incremento |
-- | op-- | Decrementa op en 1; se evalúa al valor anterior al incremento |
-- | --op | Decrementa op en 1; se evalúa al valor posterior al incremento |
Tabla 11: Operaciones con "++" y "--"
C. Operadores de comparación y condicionales
Un operador de comparación compara dos valores y determina la relación existente entre ambos. Porejemplo, el operador != devuelve verdadero (true) si los dos operandos son distintos. La siguiente tabla resume los operadores de comparación de Java:
Operador | Uso | Devuelve verdadero si |
> | op1 > op2 | op1 es mayor que op2 |
>= | op1 >= op2 | op1 es mayor o igual que op2 |
< | op1 < op2 | op1 es menor que op2 |
| op1 >> op2 | Desplaza los bits de op1 a la derecha op2 veces |
> |op1 >>> op2 | Desplaza los bits de op1 a la derecha op2 veces (sin signo) |
Tabla 14: Operadores de desplazamiento de bits
Los tres operadores de desplazamiento simplemente desplazan los bits del operando de la parte izquierda el número de veces indicado por el operando de la parte derecha. El desplazamiento ocurre en la dirección indicada por el operador. Por ejemplo, la siguiente sentencia,desplaza los bits del entero 13 a la derecha una posición:
13 >> 1;
La representación en binario del número 13 es 1101. El resultado de la operación de desplazamiento es 1101 desplazado una posición a la derecha, 110 o 6 en decimal. Se debe tener en cuenta que el bit más a la derecha se pierde en este caso.
Un desplazamiento a la derecha una posición es equivalente a dividir el operando del ladoizquierdo por 2, mientras que un desplazamiento a la izquierda de una posición equivale a multiplicar por 2, pero un desplazamiento es más eficiente, computacionalmente hablando, que una división o multiplicación.
El desplazamiento sin signo >>> funciona de la siguiente manera:
* Si se desplaza con signo el número -1 (1111), seguirá valiendo -1, dado que la extensión de signo sigueintroduciendo unos en los bits más significativos.
* Con el desplazamiento sin signo se consigue introducir ceros por la izquierda, obteniendo el número 7 (0111).
Este tipo de desplazamientos es especialmente útil en la utilización de máscaras gráficas.
b.) Operadores de lógica de bits
La lógica de bits (lógica de Bool) se utiliza para modelizar condiciones biestado y trabajar con ellas(cierto/falso, true/false, 1/0).
En Java hay cuatro operadores de lógica de bits:
Operador | Uso | Operación |
& | op1 & op2 | AND |
| | op1 | op2 | OR |
^ | op1 ^ op2 | OR Exclusivo |
~ | ~op2 | Complemento |
Tabla 15: Operadores de lógica de bits
El operador & realiza la operación AND de bit. Aplica la función AND sobre cada par de bits de igual peso de cada operando. La función AND esevaluada a cierto si ambos operandos son ciertos.
Por ejemplo vamos a aplicar la operación AND a los valores 12 y 13:
12 & 13
El resultado de esta operación es 12. ¿Por qué?. La representación en binario de 12 es 1100, y de 13 es 1101. La función AND pone el bit de resultado a uno si los dos bits de los operandos son 1, sino, el bit de resultado es 0:
1101
&...
Regístrate para leer el documento completo.