O fragmento de código abaixo foi escrito em Java. Qual a gra...
O fragmento de código abaixo foi escrito em Java. Qual a grandeza numérica que será impressa na tela?
Comentários
Veja os comentários dos nossos alunos
O gabarito é a letra A.
Resolvi dessa maneira, convertendo o que estava em hexadecimal para decimal, mas não consegui chegar ao resultado:
A = 87
B = 87
C = 2
D = 5,5
E = 0
E = 87 + 87 * 3 / 5,5 - 3
E = 87 + 47,454 - 3
E = 131,454
Encontrei somente letra B
Resolvi convertendo tudo pra decimal, assim como o amigo Lucas Costa. Porém ele errou na conversão da variável B.
A= 87
b= 47
c= 2
D = 5,5
E= 0
E= 87 + (47*2)/5.5 -3
E= 87 + 94/5.5 -3
E= 87 + 17,091 - 3
E = 101,09
No caso do Vinicius e Lucas cairam na pegadinha e usaram o valor de - C como 3 onde o correto seria 4
Questão muito boa !
Grande X da questão é entender o que se trata o inteiro usando 0x valores em hexadecimal, 0numero(octal) e onde c++ é o proprio valor de c e no próximo ++c ele já vai com o valor de 3 lá do c++,
int A = 0x57;
Convertendo 0x57 para binario
57(16) = 0101 0111(2)
convertendo para decimal, vale lembrar que fiz a remoçao de valor onde é 0
1*2^1*6+2^1*4+2^2+1*2^1+1*2^0
64+16+4+2+1 = 87
A = 87
int B=057;
B= 057;
Java trata nesse caso o valor como octal
Convertendo
057(8) = 101111(2)
convertendo para decimal, vale lembrar que fiz a remoçao de valor onde é 0
1*2^5+1*2^3+1*2^2+1*2^1+1*2^0 = 47
B = 47
C=2;
D = 5.5;
E= 0
DESMEMBRANDO
E = ((A + (B * (C++ /D))) - ++C);
E = C++ /D; Resultado 0.36363637
E = B * E; Resultado 17.09091
E= A + E; Resultado 104.09091
E= E- ++C; Resultado 100.09091
Valores
C++ /D = 2 / 5.5 = 0.36363637
B* = 47 * 0.3636 = 17.09091
A+ = 87+17.0892 = 104.09091
++C= 4 - 104.09091 = 100.09091
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo