viernes, 14 de julio de 2017

Operaciones con bits

Hay una clase de operadores que manipulan números de un modo inusual. Estos operadores trabajan a nivel de bits. Se usan para ciertos tipos de tareas de bajo nivel, a menudo implican configuración o lectura de marcas-bit (bit-flags):

Tabla 34-5: Operadores de bits
Operador Descripción
~ Negación bit a bit. Niega todos los bit de un número.
<< Desplazamiento de bits a la izquierda. Desplaza todos los bits en un número hacia la izquierda.
>> Desplazamiento de bits a la derecha. Desplaza todos los bits en un número hacia la derecha.
& AND bit a bit. Realiza una operación AND en todos los bits en dos números.
| OR bit a bit. Realiza una operación OR en todos los bits en dos números.
^ XOR bit a bit. Realiza una operación OR exclusiva en todos los bits en dos números.

Fíjate que también hay los correspondientes operadores de asignación (por ejemplo, <<==) para todos excepto para la negación bit a bit.

Aquí lo comprobaremos produciendo una lista de potencias de 2, usando el operador de desplazamiento de bits a la izquierda:

[me@linuxbox ~]$ for ((i=0;i<8;++i)); do echo $((1<<i)); done
1
2
4
8
16
32
64
128

No hay comentarios:

Publicar un comentario