Poznaj C++ w$ godziny0047

Poznaj C++ w$ godziny0047



Zmienne i stałe 31

Kiedy używać short a kiedy long

Jednym z problemów programistycznych jest kiedy definiować zmienne jako long, a kiedy jako short. Reguła jest tutaj bardzo prosta: Jeśli istnieje szansa, że wartość, którą będziesz przypisywał do zmiennej przekroczy dopuszczalny zakres tej zmiennej to wykorzystaj większy typ.

Jak widać w tabeli 3.1, zmienne typu unsigned short, przy założeniu, że są one dwubajtowe, mogą przechowywać wartości nie większe niż 65535. Zmienne typu signed int mogą przechować wartość dodatnią o połowę mniejszą. Mimo że zmienne unsigned long mogą reprezentować bardzo duże liczby (do 4294967295), to są one i tak ograniczone. Jeśli potrzebujesz większych liczb, to musisz odwołać się do zmiennych typu float lub double, lecz wtedy tracisz na precyzji w reprezentacji liczb. Zmienne float i double mogą przyjmować ekstremalnie duże wartości, lecz na większości komputerów jedynie pierwsze 7 lub 19 cyfr jest znaczących. Oznacza to, że liczba jest zaokrąglana na pozostałych miejscach.

Przekraczanie zakresu w zmiennych unsigned

Fakt, że zmienne typu unsigned long mają ograniczony zakres wartości raczej rzadko stanowi problem. Ale co się dzieje gdy jednak przekroczymy dopuszczalny zakres?

Kiedy liczba całkowita bez znaku (unsigned) osiągnie swoją maksymalną wartość, to wraca do początku zakresu - do zera (tak jak licznik w magnetofonie). Listing 3.4. pokazuje co dzieje, gdy próbujemy przechować zbyt dużą wartość w zmiennej typu short.

Listing 3.4. Demonstracja próby przechowania zbyt dużej wartości w zmiennej unsigned short

1:    tinclude <iostream.h>

2:    int main()

3:    {

4:    unsigned short int malaLiczba;

5:    malaLiczba = 65535;

6:

cout « "mała

liczba

" «

malaLiczba

«

endl

7:

malaLiczba++;

8:

cout « "mała

liczba

" «

malaLiczba

«

endl

9:

malaLiczba++;

10:

cout « "mała

liczba

" «

malaLiczba

«

endl

11:

return 0;

12:

1

fFEKT DZIAŁANIA:

mała liczba: 65535 mała liczba: 0 mała liczba: 1

Kiedy używać short a kiedy long

Jednym z problemów programistycznych jest kiedy definiować zmienne jako long, a kiedy jako short. Reguła jest tutaj bardzo prosta: Jeśli istnieje szansa, że wartość, którą będziesz przypisywał do zmiennej przekroczy dopuszczalny zakres tej zmiennej to wykorzystaj większy typ.

Jak widać w tabeli 3.1, zmienne typu unsigned short, przy założeniu, że są one dwubajtowe, mogą przechowywać wartości nie większe niż 65535. Zmienne typu signed int mogą przechować wartość dodatnią o połowę mniejszą. Mimo że zmienne- unsigned long mogą reprezentować bardzo duże liczby (do 4294967295), to są one i tak ograniczone. Jeśli potrzebujesz większych liczb, to musisz odwołać się do zmiennych typu float lub double, lecz wtedy tracisz na precyzji w reprezentacji liczb. Zmienne float i double mogą przyjmować ekstremalnie duże wartości, lecz na większości komputerów jedynie pierwsze 7 lub 19 cyfr jest znaczących. Oznacza to, że liczba jest zaokrąglana na pozostałych miejscach.

Przekraczanie zakresu w zmiennych unsigned

Fakt, że zmienne typu unsigned long mają ograniczony zakres wartości raczej rzadko stanowi problem. Ale co się dzieje gdy jednak przekroczymy dopuszczalny zakres?

Kiedy liczba całkowita bez znaku (unsigned) osiągnie swoją maksymalną wartość, to wraca do początku zakresu - do zera (tak jak licznik w magnetofonie). Listing 3.4. pokazuje co dzieje, gdy próbujemy przechować zbyt dużą wartość w zmiennej typu short.

Listing 3.4. Demonstracja próby przechowania zbyt dużej wartości w zmiennej unsigned short

(tinclude <iostream.h> int main ()

{

unsigned short int malaLiczba; malaLiczba = 65535;

cout « "mała malaLiczba++;

liczba:'

' «

malaLiczba

«

endl ;

cout « "mała malaLiczba++;

liczba:'

' «

malaLiczba

«

endl;

cout « "mała return 0;

liczba:'

’ «

malaLiczba

«

endl;


1:

2:

3:

-1 : 5: 67:

9 : 9: 101112:

EFEKT DZIAŁANIA:

mała liczba: 65535 mała liczba: 0 mała liczba: 1


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0041 Zmienne i stałe 25 Program 3.1. pomoże Ci w zobaczeniu ile dokładnie pamię
Poznaj C++ w$ godziny0043 Zmienne i stałe 27Definiowanie zmiennych Zmienne tworzy się i definiuje si
Poznaj C++ w$ godziny0045 Zmienne i stałe 29Przypisywanie wartości do zmiennych Wartości przypisuje
Poznaj C++ w$ godziny0049 Zmienne i stałe 33 Zmienne całkowite ze znakiem „zawijają się” od najwięks
Poznaj C++ w$ godziny0051 Zmienne i stałe 35 enum KOLOR { CZERNOMY-lOO, NIEBIESKI, ZIELONY=500, BIAŁ
Poznaj C++ w$ godziny0174 Referencje 163 Linie 24-26 zamieniają wartości. Efekt zamiany wypisywany j
ANSI C 9 TYPY, OPERATORY I WYRAŻENIA Zmienne i stałe są podstawowymi obiektami danych, jakimi posł
Poznaj C++ w$ godziny0048 32 Godzina 3 32 Godzina 3 ANALIZA: W linii 4 deklarowana jest zmienna mala
Poznaj C++ w$ godziny0004 Spis rozdziałów Część 1 Wstęp do C++ 1 1 Zaczynamy 3 2 Program w C++ 1
Poznaj C++ w$ godziny0007 VI Poznaj C++ w 24 godziny Przypisywanie wartości do zmiennych
Poznaj C++ w$ godziny0008 Spis treści    vii Zmienne
Poznaj C++ w$ godziny0031 Godzina 2 Program w C++ Zanim zaczniemy dokładnie poznawać szczegóły progr
Poznaj C++ w$ godziny0039 Godzina 3Zmienne i stałe Program musi w jakiś sposób reprezentować dane, z
Poznaj C++ w$ godziny0040 24 Godzina 3 Rysunek 3.1 Schemat pamięci MojaZmienna Nazwa Zmiennej RAM&nb
Poznaj C++ w$ godziny0042 26 Godzina 3 i unsigned dla liczb bez znaku. Liczby całkowite (short, long
Poznaj C++ w$ godziny0044 28 Godzina 3 Wielu programistów preferuje wykorzystywanie jedynie małych l
Poznaj C++ w$ godziny0046 30 Godzina 3typedef
Poznaj C++ w$ godziny0050 34 Godzina 3Definiowanie stałych za pomocą #def ine Żeby zdefiniować zmien
Poznaj C++ w$ godziny0056 Instrukcje i wyrażenia 41 Dzielenie całkowite wygląda trochę inaczej niż z

więcej podobnych podstron