Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Każdyliterałznakowy(znakwapostrofach)jesttypuchar.
Każdynapistruelubfalsejestliterałemlogicznym(typboolean);słowatrue
ifalsesąsłowamizarezerwowanymijęzyka.
Wniektórychprzypadkachprogramistamożezmienićinterpretacjęliterałówliczbowych,
stosującspecjalnemodyfikatory:
użycieliteryLlubljakoprzyrostkaliczbycałkowitejsprawia,żeliczbatabędzie
traktowanajakotypulong(np.3Lbędzieliterałemtypulong),
użycieflubFspowoduje,żeliczbarzeczywistabędzietraktowanajakotypufloat
(np.0i3f).
Liczbycałkowitemogąbyćzapisywane
wsystemiedziesiętnymwnaturalnysposób(np.3lub121),
wsystemiebinarnymprzezpoprzedzenieliczbyznakami0blub0B(np.0b1110101),
wsystemieósemkowymprzezpoprzedzenieliczbyznakiem0(np.03),
wsystemieszesnastkowymprzezpoprzedzenieliczbyznakami0xlub0X(np.0x1a,
0X11,0xFFzwróćmyuwagę,żecyfryszesnastkowepowyżej9mogąbyćzapisywane
dużymilubmałymiliterami).
Liczbyrzeczywistymogąbyćzapisywanewnotacjinaukowej(inżynierskiej)zwyko-
rzystaniemliteryelubE,np.2e+9oznacza2pomnożoneprzez10dopotęgi9,3e-11
oznacza3pomnożoneprzez10dopotęgi-11.Przyzapisieliczbmożnapomiędzycyframi
umieszczaćznakpodkreślenia.Wtensposóbzapisdużychliczbstajesiębardziejczytelny,
np.zamiast1000000000możnapisać1_000_000_000.
Apocosątewszystkiedodatkowenapisy(przyrostki,modyfikatory)?Sprawajest
oczywistawprzypadkuzmianypodstawysystemuliczbowego.Literał10jesttraktowany
jakozapiswsytemiedziesiętnym(imawartość10).Jeżelichcemyzaznaczyć,żechodzi
namoliczbę10zapisanąwsystemieszesnastkowym(ajejwartośćdziesiętniejestjuż
zupełnieinna16),tomusimyużyćjakiejśkonwencji(wprzypadkuJavyprzedrostka
0xlub0X).
AlemodyfikatoryLczyFpoco?Otóż,niestetykompilatorJavy,przypisująctypli-
terałomliczbowym,niekierujesięwartościązapisanychliteralnieliczb.Jakpowiedziano,
wszystkieliterałycałkowitoliczbowetraktujejakotypuint,arzeczywiste(czylizkropką
dziesiętnąlubzapisanewnotacjinaukowej)jakodouble.Zwróćmyjednakuwagę,żedane
typuintzajmujątylko4bajtywpamięciinajwiększaliczba,którąmożnazapisaćwtych
czterechbajtach,to2147483647
.Jeślizatemzapiszemywprogramieliterał2147483649,to
będzieonpotraktowanyjakoliczbatypuint,tylkoniestetyniezmieścisięonawobszarze
przeznaczonymnaprzechowywanietakichliczb.Kompilatorrozpoznatęsytuacjęizgłosi
błąd.Powinniśmyzatemzapisaćliterałjako2147483649L.
Gorszyprzypadek.Jeślizapiszemyoperacjędodawaniadwóchliterałów2147483647
+10,toobieliczbybędątypuint(ifaktyczniezmieszcząsięwobszarach4-bajtowych).
36
2.Typyioperacje