ANC - Analista em Computação - Ênfase em Programação de Sistemas na Tecnologia Java
Analise o seguinte trecho de código Java:int n= 017;System.out.println(n);O que acontecerá após a execução?
AImprime 017 na saída padrão.
BImprime 17 na saída padrão.
CImprime 15 na saída padrão por conversão implícita de octal para decimal.
DProduz erro de compilação.
EProduz erro em tempo de execução.
Revelar gabarito e comentário▾
GabaritoC — Imprime 15 na saída padrão por conversão implícita de octal para decimal.
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”.
Literais octais em Java
Gabarito: alternativa C. Em Java, o prefixo 0 em um literal inteiro indica que ele está em base octal. Assim, 017 equivale a em decimal. Portanto, o programa imprime 15.
1Prefixo 0 = octal
2017 = 1×8¹ + 7×8⁰
3Resultado: 15 decimal
4System.out.println(15)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
O código não imprime 017 como string. O literal 017 é interpretado como um número octal e convertido para inteiro. A impressão com System.out.println utiliza a representação decimal padrão.
Alternativa B — ❌ Incorreta
O valor octal 017 é 15 decimal, não 17. Confundir com o número decimal 17 é um erro comum.
Alternativa C — ✅ Correta ⟵ GABARITO
A conversão implícita de octal para decimal ocorre durante a compilação: o literal 017 é armazenado como o inteiro 15. Ao imprimir, exibe 15. Esta é a resposta correta.
Alternativa D — ❌ Incorreta
Não há erro de compilação. Literais octais são perfeitamente válidos em Java, desde que os dígitos estejam entre 0 e 7 (como é o caso).
Alternativa E — ❌ Incorreta
Não há erro em tempo de execução. O programa compila e executa normalmente.
PEGA ESSA DICA!
Lembre-se: em Java, prefixo 0 = octal, 0x = hexadecimal, 0b = binário (desde Java 7). Para evitar confusão, evite usar literais octais, a menos que necessário.