2.1.4.1 Operaciones a nivel de bit sobre enteros

Los enteros normales y largos tienen operaciones adicionales que sólo tienen sentido en cadenas de bits. Los números negativos se tratan como su valor complementario a 2 (en los enteros largos, se supone que hay suficientes bits para que la operación no desborde).

La prioridad de las operaciones a nivel de bit es menor que la de las operaciones numéricas y mayor que las comparaciones. La operación unaria "~" tiene la misma prioridad que las otras operaciones numéricas unarias ("+" y "-").

Esta tabla enumera los operadores a nivel de bit ordenados por prioridad ascendente (los operadores de una misma casilla tienen la misma prioridad):

Operación  Resultado  Notas 
x | y o a nivel de bit de x e y  
x ^ y o exclusivo de x e y  
x & y y a nivel de bit de x e y  
x « n x desplazado a la izquierda n bits (1), (2)
x » n x desplazado a la derecha n bits (1), (3)
~x x negado a nivel de bit  

Notas:

(1)
En los desplazamientos n no puede ser negativo o se lanzará ValueError.
(2)
Un desplazamiento a la izquierda de n bits equivale a multiplicar por pow(2, n) sin comprobación de desbordamiento.
(3)
Un desplazamiento a la derecha de n bits equivale a dividir por pow(2, n) sin comprobación de desbordamiento.


Ver Sobre este documento... para obtener información sobre sugerencias.