Trabajando con bits en Java
Muchas veces nos encontraremos que queremos trabajar a nivel de Bit dentro de aplicaciones en Java, y este nos ofrece la misma potencia que C a la hora de trabajar con los registros bit a bit. Los operadores más comunes en Java son los siguientes:
& AND (Y lógica)
| OR (O lógica)
~ NOT (Negación)
^ XOR (Suma exclusiva)
<< SHL (Rotación de bits a la izquierda)
>> SHR (Rotación de bits a la derecha)
- Algunos ejemplos del funcionamiento de los operadores:
0 & 0 = 0;
0 & 1 = 0;
1 & 0 = 0;
1 & 1 = 1;
OR:
0 | 0 = 0;
0 | 1 = 1;
1 | 0 = 1;
1 | 1 = 1;
NOT:
~0 = 1;
~1 = 0;
XOR:
0 ^ 0 = 0;
0 ^ 1 = 1;
1 ^ 0 = 1;
1 ^ 1 = 0;
SHL:
0001 << 1 = 0010;
0010 << 1 = 0100;
0100 << 1 = 1000;
1000 << 1 = 0000; (no se conservan los bits)
SHR:
1000 >> 1 = 0100;
0100 >> 1 = 0010;
0010 >> 1 = 0001;
0001 >> 1 = 0000; (no se conservan los bits)
- Agrupando operadores:
int i = 00011001 (25 decimal)
int j = ~i << 1 =11100110 << 1 = 11001100 (204 decimal)
Comments
Post a Comment