[ Pobierz całość w formacie PDF ]

ment, a typ 4 bajty na element).
Typ long
Typ to 64-bitowy typ stosowany wszędzie tam, gdzie wiadomo, iż zakres typu
nie jest wystarczający. Zakres typu jest naprawdę imponujący, więc przydaje się
w momencie wykonywania obliczeń na bardzo dużych liczbach. Poniżej znajduje się przy-
kładowy program, który oblicza liczbę kilometrów, jaką przebędzie światło w podanej
liczbie dni.
Obliczanie odległości przebytej przez światło za pomocą zmiennych typu long.
przybliżona prędkość światła w kilometrach na sekundę
określenie liczby dni
konwersja na sekundy
obliczenie odległości
Wykonanie programu spowoduje wyświetlenie następującego komunikatu.
Z pewnością taki wynik nie zmieściłby się w zmiennej typu .
Rozdział 3. f& Typy danych, zmienne i tablice 67
Typy zmiennoprzecinkowe
Liczby zmiennoprzecinkowe, nazywane również liczbami rzeczywistymi, stosowane są
zawsze tam, gdzie potrzebna jest informacja z dokładnością do ułamków liczb. Wyko-
nywanie obliczeń takich jak pierwiastek kwadratowy lub sinus wymaga zastosowania
typu o bardzo wysokiej precyzji, czyli typu zmiennoprzecinkowego. Java implemen-
tuje standardowy (IEEE-754) zbiór typów i operatorów zmiennoprzecinkowych. Istnieją
dwa typy zmiennoprzecinkowe, i , które odpowiadają liczbom pojedyn-
czej i podwójnej precyzji. Tabela 3.2 przedstawia rozmiar i zakresy obu typów.
Tabela 3.2. Rozmiary i zakresy typów zmiennoprzecinkowych
Nazwa Rozmiar Przybliżony zakres
64 od 4.9e 324 do 1.8e+308
32 od 1.4e 045 do 3.4e+038
Oba typy omawiam w kolejnych punktach.
Typ float
Typ określa wartość zmiennoprzecinkową pojedynczej precyzji, która używa
32 bajtów pamięci. Pojedyncza precyzja jest szybsza na niektórych procesorach i zaj-
muje dwa razy mniej miejsca od podwójnej precyzji, ale z drugiej strony jest mniej do-
kładna dla bardzo małych lub bardzo dużych wartości. Zmienne typu przydają
się wtedy, gdy potrzebna jest część ułamkowa, ale nie zależy nam na dużej precyzji.
Na przykład, ten typ doskonale nadaje się do reprezentacji złotówek i groszy.
Oto przykład deklaracji zmiennych typu .
Typ double
Zmienne o podwójnej precyzji zajmującej 64-bity oznacza się za pomocą słowa klu-
czowego . Niektóre nowoczesne procesory potrafią szybciej wykonywać obli-
czenia na liczbach podwójnej precyzji, gdyż zostały odpowiednio zoptymalizowane.
Wszystkie funkcje trygonometryczne i nie tylko  , ,  zwracają
wartości typu . Jeśli trzeba zachować dobrą dokładność dla wielu iteracyjnie
wykonywanych obliczeń lub obsługiwać bardzo duże liczby, typ jest najlepszym
wyborem.
Poniższy program wykorzystuje zmienne typu do obliczenia pola koła.
Obliczenie pola koła.
68 Część I f& Język Java
promień koła
przybliżona wartość pi
obliczenie pola
Typ znakowy
W Javie typem danych używanym do przechowywania znaków jest typ . Progra-
miści języka C lub C++ powinni jednak uważać, gdyż typ ten nie oznacza dokładnie
tego samego, co w języku C. W języku C lub C++ typ to 8-bitowy typ całkowity, ale
w Javie jest całkiem inaczej, gdyż do reprezentacji znaków używa się unikodu. Unikod
(ang. Unicode) definiuje pełny zbiór znaków używanych przez większość języków,
jakimi obecnie posługują się ludzie na całym świecie. Jest to unifikacja dziesiątek daw-
nych zbiorów znaków: łacińskiego, greckiego, arabskiego, cyrylicy, hebrajskiego, Kata-
kana, Hangul i wielu innych. Z tego powodu unikod wymaga 16 bitów. Ponieważ Java
obsługuje unikod, typ jest 16-bitowy i ma zakres od 0 do 65 535. Nie istnieją
ujemne wartości znaków. Zbiór znaków ASCII znajduje się w zakresie od 0 do 127,
a 8-bitowy zbiór znaków ISO Latin 1 znajduje się w zakresie od 0 do 255. Ponieważ
Java została tak zaprojektowana, aby jej aplety mogły być uruchamiane na całym świe-
cie, zastosowanie unikodu do reprezentacji znaków wydaje się sensownym wyborem.
Oczywiście unikod jest mniej wydajny dla języków takich jak angielski, niemiecki czy
francuski, które łatwo mieściłyby się w 8 bitach. Zapewnienie globalnej przenośności
ma swoją cenę.
Więcej informacji na temat kodowania znaków Unicode znajduje się na witrynie
www.unicode.org.
Poniżej znajduje się prosty program obrazujący wykorzystanie zmiennych typu .
Przykład użycia typu danych char.
kod dla X
Wykonanie programu spowoduje wyświetlenie następującego wyniku.
Rozdział 3. f& Typy danych, zmienne i tablice 69
Zauważ, że zmiennej ch1 została przypisana wartość 88, która w kodzie ASCII i Uni-
code odpowiada znakowi X. Jak wspomniałem, zbiór znaków ASCII zajmuje pierwsze
127 znaków zbioru znaków Unicode. Z tego powodu w Javie nadal można stosować
wiele sztuczek ze znakami.
Choć typ nie jest typem całkowitym, to jednak w wielu sytuacjach działa do-
kładnie tak samo jak typ . Umożliwia dodanie dwóch znaków do siebie lub zwięk-
szenie wartości zmiennej znakowej. Rozważmy następujący program. [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • janekx82.keep.pl