← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

Observe os dois comandos de atribuição do JavaScript. let X = -100; X <<= 5; Assinale o valor de X após a execução desses comandos.

Gabarito: E

Em JavaScript, os operadores de deslocamento bit a bit não fazem uma multiplicação comum: eles atuam sobre a representação binária do número. No caso de X <<= 5, o valor de X é deslocado 5 bits para a esquerda, o que equivale, na prática, a multiplicar por 2^5, isto é, por 32. Como X vale -100, o resultado vira -100 x 32 = -3200. Vale lembrar que, em operações bit a bit, o JavaScript converte o número para inteiro de 32 bits com sinal. Isso é o que permite esse comportamento “de computador raiz”, bem diferente de uma simples conta aritmética escrita no quadro. O sinal negativo continua lá, então o deslocamento preserva o negativo e amplia o valor absoluto. Por isso, após a execução de let X = -100; e depois X <<= 5;, o valor final de X é -3200. É exatamente esse o gabarito da questão. Em provas, sempre desconfie quando aparecer operador de deslocamento: a banca gosta de testar se você sabe que ele não é soma nem concatenação, mas operação bit a bit.

Continue treinando

Questões relacionadas