short * short = ?  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
Rafael Nunes
Moderador
[Avatar]

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

OLa,
O cv tinha explicado que o será gerado um erro de compilação se fizer:


Pois short * short pode gerar um número acima de short.
Porém eu fiz uma pergunta que não obrive resposta.
Isso é pressuposto pelo compilador? Independente de quais meus valores, o compilador sempre irá encarar como um erro?

------------------------------------------------------------------
"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]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Isso faz parte da especificacao da linguagem, portanto o compilador ja esta "prevenido" para esse tipo de situacao.

Na secao §5.6.1 da JLS ( http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#170952 ) tem uma explicacao da razao disso ocorrer.

Se voce ver la, dentre outros tipos, short sera "promovido" para int no caso de determinados operacoes ( entre elas a soma e a multiplicacao )

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Rafael Nunes
Moderador
[Avatar]

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

E isto acontece com os outros tipos primitivos? Ou somente com short?

Sei que deve estar lá na especificação, mas meu inglês não me permite por momento entender o link lá...

------------------------------------------------------------------
"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]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Acontece com os tipos inferiores a int: byte, short, ou char

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
cv
Moderador
[Avatar]

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

Epa! char?
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

cv wrote:Epa! char?


Qual o problema cv? char é 1 tipo numerico.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
cv
Moderador
[Avatar]

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

Ugh. Eu sempre caio nessa.
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Ironlynx
Moderador
[Avatar]

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

Como não custa nada lembrar:
The integral types are byte, short, int, and long, whose values are 8-bit, 16-bit, 32-bit, and 64-bit signed two's-complement integers, respectively, and char, whose values are 16-bit unsigned integers representing Unicode characters


For byte, from -128 to 127 (-27 to 27-1), inclusive

For short, from -32768 to 32767 (-215 to 215-1), inclusive

For int, from -2147483648 to 2147483647 (-231 to 231-1), inclusive

For long, from -9223372036854775808 to 9223372036854775807 (-263 to 263-1), inclusive

For char, from 0 to 65535 inclusive

A JVM não tem instruções aritméticas para manipular diretamente valores do tipo short,byte e char,além dos valores booleanos.As operações desses tipos são tratados por instruções de operações do tipo int (Como iadd,imul...)
from JVMSpec

Não basta persistir...tem que prevalecer!
Ironlynx
Anarquista de Sistemas
http://osereojava.blogspot.com/
[WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team