Analise o seguinte trecho de código Java:int n= 017; System...
Analise o seguinte trecho de código Java:
int n= 017;
System.out.println(n);
O que acontecerá após a execução?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C - Imprime 15 na saída padrão por conversão implícita de octal para decimal.
Vamos entender o motivo. No Java, ao declararmos um número iniciando com o dígito zero, seguido de outros dígitos numéricos, estamos informando ao compilador que o número é uma literal de uma base numérica diferente da decimal. Nesse caso específico, com o prefixo 0, estamos indicando que o número é uma literal octal.
O número octal 017 é equivalente ao número decimal 15. Para converter de octal para decimal, aplicamos a fórmula: (dígito)n x 8n, onde n é a posição do dígito, contando da direita para a esquerda e começando do zero. Assim, temos:
- (7 x 80) = 7
- (1 x 81) = 8
Somando os resultados, 7 + 8 = 15.
Portanto, quando o trecho de código é executado, o valor 017 é interpretado como um número octal e convertido para a sua representação decimal equivalente antes de ser impresso, que é 15.
As demais opções estão incorretas porque:
- A - Ele não imprime 017, pois isso seria a representação literal do número, ignorando que ele está em base octal.
- B - Ele não imprime 17, pois isso sugere uma conversão direta sem entender o sistema de números.
- D - Não há erro de compilação, pois a sintaxe utilizada é válida em Java para declaração de literais octais.
- E - Não há erro em tempo de execução, pois a conversão de octal para decimal é um comportamento padrão do Java e não resulta em erro.
Entender como diferentes bases numéricas são representadas e manipuladas é fundamental para a programação e pode ser um ponto de atenção em concursos públicos que abordem linguagens de programação.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Correta letra C:
No trecho de código Java apresentado, o número é atribuído à variável e, em seguida, é impresso no console.
No entanto, é importante notar que o número está escrito em uma base octal (base 8) devido ao prefixo . Em Java, um número inteiro literal começando com 0 é interpretado como um número octal.
Em notação octal, os dígitos válidos são de 0 a 7. Portanto, o dígito não é válido em octal. Ao encontrar um dígito inválido, o compilador Java o trata como um erro e lança uma exceção de compilação.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo