java short tipus

Fórumok

java short tipus

Hozzászólások

Sziasztok!
van egy igen egyszeru java-s kerdesem:
short a=2, b=3, c; c=a+b;
miert hibas? az a+b kifejezes tipusa miert lesz int? ez valami short specifikus dolog?

Tehat azt furcsallom es kerdezem, hogy short+short kif. tipusa miert int...
es akkor int+int miert nem long?

Tudom hogy c=(short)(a+b) mukodik, de nem ertem, hogy milyen kulonbseg van az int, es a short tipus kozott azt leszamitva, hogy az utobbi kevesebb byteon van abrazolva...

Szoval ez mellozi a logikat, es tudomasul kell venni, hogy igy van, vagy van valami oka, amire en nem jottem ra?

Megkerdeztem mar tobb irc csatornan, de sehol nem kaptam ertelmes valaszt... mint pl: "igen, ez short specifikus dolog", vagy "azert van igy, mert..."
A kerdes azert fontos, mert e pelda ellentmond annak a szabalynak, hogy amit a tobbi elemi tipusnal hasznal, (szerintem)(ill. nem probaltam vegig az oszeset), de igy erhetnek meglepetesek..., amiket kerulni szeretnek!

[quote:ac2483b69f="bitumen"]nem lehet, hogy a + b > SHORT_MAX ?

nem, 2+3 (vagy kb. ezt irtam) =5 ugyhogy az belefer a 4 byteba...
Egy otlet persze, hogy azert van igy, hogy tulcsordulas ne lehessen, de akkor az lenne a logikus, ha mas tipusnal is igy legyen. Nem?
Pl: int a=3, b=4, c; c=a+b;
Ez helyes. Tehat nem ugy kezeli szeritnem, mint short-ot!