Recursão: deslocamento à esquerda por potências de dois

A operação de deslocamento à esquerda é semelhante à multiplicação por potências de dois; portanto, o processo é repetitivo e pode ser realizado de forma recursiva.

Cálculo de exemplo usando o operador de deslocamento à esquerda (<<):

10 << 3 = 10 * 2^3 = 10 * 8 = 80
-32 << 2 = -32 * 2^2 = -32 * 4 = -128
5 << 2 = 5 * 2^2 = 5 * 4 = 20

Escreva uma função recursiva que imite (sem usar <<) o operador de deslocamento à esquerda e retorne o resultado dos dois inteiros fornecidos.

Exemplos

shiftToLeft(5, 2) ➞ 20

shiftToLeft(10, 3) ➞ 80

shiftToLeft(-32, 2) ➞ -128

shiftToLeft(-6, 5) ➞ -192

shiftToLeft(12, 4) ➞ 192

shiftToLeft(46, 6) ➞ 2944

Observações

  • Não haverá valores negativos para o segundo parâmetro y.
  • Este desafio consiste em recriar a operação de deslocamento à esquerda; portanto, é proibido usar o operador diretamente.
  • Espera-se que você resolva este desafio por meio de recursão.
  • Uma versão iterativa deste desafio pode ser encontrada neste link.
  • Uma coleção de desafios de recursão pode ser encontrada neste link.