Qual a saída dos códigos?  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

Pegadinhas para aqueles que estão atrás de certificação.


a. 16 ; 256
b. erro de compilação na linha 2
c. erro de compilação na linha 3
d. erro de execução
e. nenhuma das anteriores

Daniel Quirino Oliveira
[Email] [WWW]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

Opção "c".
short não comporta 256 bits (bytes?).

Se não me engano comporta somente 128...

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
Ironlynx
Moderador
[Avatar]

Membro desde: 02/05/2003 01:06:41
Mensagens: 3515
Localização: The other side of the screen
Offline

>>>c

Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

Rafael Nunes wrote:Opção "c".
short não comporta 256 bits (bytes?).

Se não me engano comporta somente 128...


A resposta é C, mas o motivo ainda não é este. Se você tentar

você verá que vai funcionar. Além do mais, o short é um tipo inteiro de 16 bits (de -32768 até 32767). Vamos lá, pessoal. Sugestões?

Daniel Quirino Oliveira
[Email] [WWW]
caiofilipini
GUJ Master
[Avatar]

Membro desde: 26/06/2003 15:17:59
Mensagens: 1255
Localização: São Paulo
Offline

O resultado gerado pela multiplicação é por padrão um int

Caio N. Filipini
"There is no spoon."
[Email] [WWW]
Lindeberg
JavaChild

Membro desde: 25/12/2003 11:54:50
Mensagens: 149
Offline

Daniel Quirino Oliveira wrote:Pegadinhas para aqueles que estão atrás de certificação.


a. 16 ; 256
b. erro de compilação na linha 2
c. erro de compilação na linha 3
d. erro de execução
e. nenhuma das anteriores


A resposta é C .

Motivo : "x" e "y" devem ser valores constantes e o tamanho do resultado da multiplicacao (x*y) ter no maximo 16 bits !!! Como 16*4 possui menos de 16 bits, bastaria apenas, para o codigo compilar sem erro , declarar tanto x como y como final !!! Mas como x e y não são final , da um erro de compilacão na linha 3 !!

Lindeberg
[Email]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

Não entendi??????

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Rafael, nao eh tao complicado assim. Um short MULTIPLICADO por outro short pode dar um valor que nao eh um short. E soh
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

Então isso é presumido pelo compilador???

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

cv wrote:Rafael, nao eh tao complicado assim. Um short MULTIPLICADO por outro short pode dar um valor que nao eh um short. E soh


POOOOO***, Carlos!!! Era para deixar o povo queimar uns neurônios!!!

Daniel Quirino Oliveira
[Email] [WWW]
Pittella
JavaChild

Membro desde: 12/02/2003 00:16:37
Mensagens: 108
Offline

Olá Pessoal...

por exemplo..



a multiplicação destes inteiros decimais é 256.A representação binária do decimal 256 e comportada por 9 bits.

portanto o statement :



nao compilaria, pois o padrão de bits dado como resposta nem sempre será o mesmo padrão de bits da expressão.


portanto se tivesse algo como :



dai tbm nao funcionaria porque apesar do valor estar represnetado em 9bits..ele faz parte do padrão de bits de um literal inteiro..oiu seja..32 bits..e uma operação com 2 operandos sendo byte , gera um int !!
a unica saida seria :



lembrando que neste caso aqui :



haverá perda de precisão...e o valor alocado não será 256.POrque a range de valores de um byte e de -128 à 127 e como tipo primitivos inteiros nao possuem overflow , e "didaticamente" falando.."faz a volta" (nossa que termo horrivel..! ) e cai em um numero dentro do padrão de bit de um byte..
vejamos..se 128..corresponde ao valor -128 , então 256 corresponderia ao valor 0.

é isso ai...

Abraço a todos.
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team