Questão nº 53

Questão de Java SE · FCC TRE-PR 2017 (nº 53)

FCC2017Analista Judiciário - Área Apoio Especializado - Especialidade Análise de SistemasJava SE
Gabarito: Cver comentário ↓

Considere o programa Java abaixo.

```java
public class JavaApplication1 {
public static void main(String[] args) {
String hexa = "B5AF";
int decimal = 1024;
System.out.println("\nValor Hexadecimal: " + hexa);
System.out.println("Valor Hexa em Decimal: " + ......
```

I

```java
);
System.out.println("\nValor Decimal: " + decimal);
System.out.println("Valor Decimal em Binário: " + ......
```

II

```java
);
System.out.println("Valor Decimal em Hexadecimal: " + ......
```

III

```java
);
System.out.println("Valor Decimal em Octal: " + ......
```

IV

```java
);
}
}
```

As lacunas de I a IV devem ser substituídas por expressões Java que completem adequadamente os comandos. Em condições ideais, é correto afirmar que a lacuna

Resposta comentada

Gabarito Alternativa C

Em Java, a classe Integer oferece métodos estáticos para converter números entre diferentes bases numéricas (decimal, binário, hexadecimal e octal), tanto de String para int quanto de int para String.

  • (A) Incorreta: Integer.toHexadecimal não é um método válido; o correto para converter uma string hexadecimal para decimal é Integer.parseInt(String s, int radix). Além disso, a conversão de 1024 para binário é 10000000000 (11 dígitos), não 1000000000 (10 dígitos).
  • (B) Incorreta: Os métodos Integer.toBinString e Integer.toOctString não existem; os nomes corretos são Integer.toBinaryString e Integer.toOctalString, respectivamente.
  • (C) Correta: A lacuna III pede a conversão de um valor decimal (decimal) para hexadecimal, e o método correto para isso é Integer.toHexString(decimal). A lacuna II pede a conversão de decimal para binário, que é feita por Integer.toBinaryString(decimal). O valor 1024 em decimal é 2102^{10}, que em binário é representado por 1 seguido de 10 zeros, ou seja, 10000000000. Ambas as afirmações estão corretas.
  • (D) Incorreta: A lacuna IV pede a conversão de um int (decimal) para uma String octal, mas Integer.parseInt(decimal, 8) tenta converter uma String para int, e o primeiro argumento (decimal) é um int, não uma String. O método correto seria Integer.toOctalString(decimal). Embora a conversão de 1024 para hexadecimal (400) esteja correta, a primeira parte da alternativa está errada. (Distrator mais tentador): Esta alternativa é uma armadilha comum, pois mistura o uso de parseInt (que converte de String para int) com a necessidade de converter de int para String em outra base, além de usar um tipo de dado incorreto (decimal é int, não String) para o primeiro argumento de parseInt. O fato de a segunda parte da afirmação (o resultado da conversão para hexadecimal) estar correta pode levar o aluno a erro.
  • (E) Incorreta: A lacuna I pede a conversão de uma String hexadecimal (hexa) para decimal, mas Integer.parseInt(decimal, 16) tenta usar um int (decimal) como a string a ser convertida. O correto seria Integer.parseInt(hexa, 16). Além disso, 1024 em hexadecimal é 400, não A24.

Fonte: FCC TRE-PR 2017 Analista Judiciário - Área Apoio Especializado - Especialidade Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho