Deslocamento para a direita por divisão

A operação de deslocamento para a direita é semelhante à divisão inteira com arredondamento para baixo por potências de dois.

Cálculo de exemplo usando o operador de deslocamento para a direita ( >> ):

80 >> 3 = floor(80/2^3) = floor(80/8) = 10
-24 >> 2 = floor(-24/2^2) = floor(-24/4) = -6
-5 >> 1 = floor(-5/2^1) = floor(-5/2) = -3

Escreva uma função que imite (sem usar >>) o operador de deslocamento para a direita e retorne o resultado dos dois inteiros fornecidos.

Exemplos

shift_to_right(80, 3) ➞ 10

shift_to_right(-24, 2) ➞ -6

shift_to_right(-5, 1) ➞ -3

shift_to_right(4666, 6) ➞ 72

shift_to_right(3777, 6) ➞ 59

shift_to_right(-512, 10) ➞ -1

Observações

  • Não haverá valores negativos para o segundo parâmetro y.
  • Este desafio consiste em recriar a operação de deslocamento para a direita; portanto, o uso direto do operador é proibido.
  • Como alternativa, você pode resolver este desafio por meio de recursão.
  • Uma versão recursiva deste desafio pode ser encontrada por meio deste link.