Podręcznik
2. Wbudowane typy danych
2.3. Typy całkowite
Typ całkowity w języku C++ to kategoria typów danych przeznaczonych do przechowywania liczb całkowitych. W C++ dostępnych jest kilka różnych typów całkowitych, różniących się rozmiarem i zakresem wartości, które mogą przechowywać. Możemy wyróżnić następujące typy całkowite:
- Typ
int
to podstawowy typ całkowity w C++. We współczesnych systemach typ ten jest zazwyczaj 32-bitowy. Można przechowywać wartości w zakresie od -2,147,483,648 do 2,147,483,647.
Przykład definicji zmiennej typu int:
int liczba_calkowita;
- Typ
short
jest mniejszym typem całkowitym. Przeważnie rozmiar jest 16-bitowy. Może przechowywać wartości w zakresie od -32,768 do 32,767.
Przykład definicji zmiennej typu int:
short liczba_calkowita;
- Typ
long
jest większym typem całkowitym. Zazwyczaj jest 32-bitowy na 32-bitowych systemach, ale na 64-bitowych systemach może być 64-bitowy. Dla 32-bitowego systemu zakres wynosi od -2,147,483,648 do 2,147,483,647.
Przykład definicji zmiennej typu long:
long liczba_calkowita;
- Typ
long long
jest jeszcze większym typem całkowitym. Jest zazwyczaj 64-bitowy, co oznacza, że może przechowywać wartości w zakresie od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807.
Przykład definicji zmiennej typu long long:
Wszystkie podane typy zmiennych były zmiennymi ze znakiem. Co to oznacza ze znakiem? Zmienne "ze znakiem" w kontekście typów całkowitych w języku C++ oznaczają, że mogą one przechowywać zarówno liczby dodatnie, jak i ujemne. To rozróżnienie jest ważne, ponieważ pozwala na reprezentowanie pełnego zakresu liczb całkowitych, w tym wartości ujemnych, co jest niezbędne w wielu aplikacjach obliczeniowych.long long liczba_calkowita;
Zmienne ze znakiem i bez znaku różnią się sposobem zapisu w pamięci komputera. Zmienne ze znakiem używają metody dwójkowego uzupełnienia do reprezentowania liczb ujemnych, co pozwala na reprezentowanie zarówno liczb dodatnich, jak i ujemnych. Zmienne bez znaku przechowują tylko liczby dodatnie, co pozwala na większy zakres dodatnich wartości liczbowych dla tej samej liczby bitów.
W przykładzie poniżej przedsatwiono na przykładzie 4 bitowego zapisu różnice pomiędzy zmiennymi całkowitymi ze znakiem oraz bez znaku.
W C++ typy całkowite mogą być modyfikowane za pomocą specyfikatorów signed
i unsigned
, aby wyraźnie określić, czy mają przechowywać wartości ujemne i dodatnie, czy tylko dodatnie. Na przykład:
signed int
jest równoznaczny zint
.unsigned int
przechowuje tylko liczby dodatnie.
- Typ
unsigned int
przechowuje tylko liczby nieujemne. Dla 32-bitowego systemu zakres wynosi od 0 do 4,294,967,295.
Przykład definicji zmiennej typu unsigned int:
unisgned int liczba_calkowita;
- Typ
unsigned short
przechowuje liczby nieujemne i zazwyczaj jest 16-bitowy. Zakres wynosi od 0 do 65,535.
Przykład definicji zmiennej typu unsigned short:
unsigned short liczba_calkowita;
- Typ
unsigned long
zazwyczaj jest 32-bitowy, a zakres wynosi od 0 do 4,294,967,295.
Przykład definicji zmiennej typu unisgned long:
unsigned long liczba_calkowita;
- Typ
unsigned long long
jest zazwyczaj 64-bitowy i może przechowywać wartości w zakresie od 0 do 18,446,744,073,709,551,615.
Przykład definicji zmiennej typu long:
unsigned long long liczba_calkowita;