Desplazamiento a la derecha mediante división

La operación de desplazamiento a la derecha es similar a la división entera con redondeo hacia abajo por potencias de dos.

Cálculo de ejemplo usando el operador de desplazamiento a la derecha ( >> ):

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

Escribe una función que imite (sin usar >>) el operador de desplazamiento a la derecha y devuelva el resultado de los dos enteros dados.

Ejemplos

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

Notas

  • No habrá valores negativos para el segundo parámetro y.
  • Este desafío consiste en recrear la operación de desplazamiento a la derecha; por lo tanto, está prohibido usar directamente el operador.
  • Como alternativa, puedes resolver este desafío mediante recursión.
  • Puedes encontrar una versión recursiva de este desafío en este enlace.