Operadores de deslocamento em Python são operadores bit a bit que movem os bits de um número inteiro um número especificado de posições para a esquerda ou para a direita. Existem dois operadores de deslocamento principais:
* **Deslocamento para a Esquerda (`<<`)**: Move os bits de um número para a esquerda por um número especificado de posições. As posições vagas à direita são preenchidas com zeros. Efetivamente, isso multiplica o número por 2 elevado à potência da quantidade de deslocamento (para números positivos).
* **Deslocamento para a Direita (`>>`)**: Move os bits de um número para a direita por um número especificado de posições. As posições vagas à esquerda são preenchidas com base no sinal do número:
* Para números positivos, as posições vagas são preenchidas com zeros. Isso efetivamente realiza a divisão inteira por 2 elevado à potência da quantidade de deslocamento.
* Para números negativos, as posições vagas são preenchidas com uns (na maioria das implementações, incluindo CPython, que mantém o sinal do número). Isso também realiza a divisão inteira por 2 elevado à potência da quantidade de deslocamento, mas lida com o sinal negativo corretamente.
# Exemplo:
```python
x = 10 # Binário: 1010
# Deslocamento para a Esquerda
left_shifted = x << 2 # Deslocar para a esquerda por 2 posições
print(left_shifted) # Saída: 40 (Binário: 101000, que é 10 * 2**2)
y = -10 # Binário: (representação em complemento de dois)
# Deslocamento para a Direita (número negativo)
right_shifted = y >> 1 # Deslocar para a direita por 1 posição
print(right_shifted) # Saída: -5 (Divisão inteira por 2)
z = 10
# Deslocamento para a Direita (número positivo)
right_shifted_positive = z >> 1 # Deslocar para a direita por 1 posição
print(right_shifted_positive) # Saída: 5 (Divisão inteira por 2)
```
**:: Referência ::** [6. Expressões — documentação do Python 3.13.2](https://docs.python.org/3/reference/expressions.html#shifting-operations)