Analise o seguinte trecho de código Java:int n= 017; System...

Próximas questões
Com base no mesmo assunto
Q2171688 Programação

Analise o seguinte trecho de código Java:

int n= 017;

System.out.println(n);

O que acontecerá após a execução?

Alternativas

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