Deslocamento à esquerda usando potências de dois

A operação de deslocamento à esquerda é semelhante à multiplicação por potências de dois.

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 que imite (sem usar <<) o operador de deslocamento à esquerda e retorne o resultado dos dois inteiros fornecidos.

Exemplos

shift_to_left(5, 2) ➞ 20

shift_to_left(10, 3) ➞ 80

shift_to_left(-32, 2) ➞ -128

shift_to_left(-6, 5) ➞ -192

shift_to_left(12, 4) ➞ 192

shift_to_left(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, 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 neste link.