AjLearning
AjLearning 0.1    





Introducción a Java - Operando con bits

Curso Introducción a Java

    Anterior     Siguiente

Hay operadores que permiten manipular los bits de los operandos. Es de tradición en los lenguajes, incluir algunos de estos operadores. Java los tiene, y los ha heredado del lenguaje C, con algunas variantes. Son operadores que actúan bit a bit sobre los valores.

El operador | toman la representación en binario de cada uno de sus dos operandos, y tomando los bits de a dos, los evalúa a:

0 | 0 da 0 0 | 1 da 1 1 | 0 da 1 1 | 1 da 1 Así, la expresión:
0xf0 | 0x0f arroja el resultado 0xff, combinando (con suma lógica) los bits de la primera expresión (11110000) con los bits de la segunda (00001111). Con el operador & (AND de bits), sucede algo similar, pero aplicando la tabla:
0 & 0 da 0 0 & 1 da 0 1 & 0 da 0 1 & 1 da 1 La expresión:
0xf0 & 0x0f dará como resultado 0.

El operador ^ funciona sobre bits, aplicando la función XOR (o exclusivo):
0 ^ 0 da 0 1 ^ 0 da 1 0 ^ 1 da 1 1 ^ 1 da 0 El operador unario ~ invierte cada bit de su operando:
~0 da 1 ~1 da 0 Los operadores de corrimiento son otro de los operadores que han nacido del C/C++. El operador << toma al primer operando, y "corre" su representación binaria en tantos bits como indica el segundo operando. La expresión:
0x0001 << 4 dará como resultado 0x0010. El operador >> actúa de la misma manera, pero corriendo el resultado hacia a la derecha, manteniendo el signo original en el bit "más izquierdo". En cambio, el operador >>> corre los bits hacia la derecha, pero poniendo 0 (cero) en los bits de la derecha. Así, si:

int i = 0xffffffff ;

la expresión i>>15 dará 0xffffffff, mientras que i>>>15 producirá 0x00000001.

Programado por Angel J. Lopez www.ajlopez.com