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) = -3Escribe una función que imite (sin usar >>) el operador de desplazamiento a la derecha y devuelva el resultado de los dos enteros dados.
Ejemplos
shiftToRight(80, 3) ➞ 10
shiftToRight(-24, 2) ➞ -6
shiftToRight(-5, 1) ➞ -3
shiftToRight(4666, 6) ➞ 72
shiftToRight(3777, 6) ➞ 59
shiftToRight(-512, 10) ➞ -1Notas
- 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.