Pular para o conteúdo principal

Questão de Programação — JavaScript — VUNESP 2023

ProgramaçãoJavaScript
Código
vu078908
Banca
VUNESP
Órgão
TCM-SP
Ano
2023
Nível
Superior
Cargo
Auditor de Controle Externo - Especialidade: Tecnologia da Informação
Considere o seguinte código HTML 5 com JavaScript: <!DOCTYPE html> <html> <body> <p id=”texto”></p> <script> document.getElementById(“texto”).innerHTML = (~(5^2))<<2; </script> </body> </html> O texto na saída apresentado no navegador, ao carregar essa página, é:
  1. A-12.5
  2. B-20.
  3. C-32.
  4. D-50.
  5. E-100.
Revelar gabarito e comentário

GabaritoC — -32.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

JavaScript – Operadores Bitwise

Gabarito: letra C. O código calcula (~(5^2))<<2. Primeiro, 5^2 = 7. Depois, ~7 = -8 (complemento de um). Por fim, -8 << 2 = -32. O resultado é exibido como texto no parágrafo.

Resolução passo a passo

  1. 5 ^ 2: XOR bitwise entre 5 (0101) e 2 (0010) resulta em 7 (0111).

  2. ~7: NOT bitwise de 7. Em JavaScript, números são de 32 bits com sinal. ~7 = -8, pois ~x = -x - 1.

  3. -8 << 2: Deslocamento à esquerda por 2 bits equivale a multiplicar por 4: -8 * 4 = -32. O resultado é -32.

  1. 15 ^ 2 = 7
  2. 2~7 = -8
  3. 3-8 << 2 = -32
LEVEL · soulevel.com.br

Alternativas

  • Alternativa A – ❌ Incorreta: -12,5 não é um inteiro; operadores bitwise trabalham com inteiros de 32 bits, não com floats.

  • Alternativa B – ❌ Incorreta: -20 seria obtido se houvesse erro de cálculo, mas não corresponde à expressão.

  • Alternativa C – ✅ Correta: -32, conforme demonstrado.

  • Alternativa D – ❌ Incorreta: -50 não é resultado de nenhuma combinação comum dos operandos.

  • Alternativa E – ❌ Incorreta: -100 seria obtido se o deslocamento fosse maior ou houvesse confusão com operadores.

PEGA ESSA DICA!

Lembre-se: ~x em JavaScript é -(x+1). Esse é o ponto mais traiçoeiro da questão. O deslocamento à esquerda << n multiplica por 2^n (cuidado com overflow, mas aqui não ocorre).

Link permanente: /questoes/vu078908