W tej lekcji dowiesz się, czym są typy całkowite w C++. Typy całkowite to zmienne, które przechowują liczby bez części dziesiętnych, takie jak 1, -42 czy 1000. W C++ mamy kilka różnych typów całkowitych, które różnią się zakresem przechowywanych wartości oraz ilością pamięci, jaką zajmują. Każdy typ całkowity ma swój maksymalny i minimalny zakres, który określa, jak dużą lub małą wartość można w nim zapisać.
Podstawowe Typy Całkowite w C++
- int– Najczęściej używany typ zmiennych całkowitych. W większości kompilatorów zajmuje 4 bajty (32 bity) i ma zakres od -2,147,483,648 do 2,147,483,647.
- short– Typ całkowity o mniejszym zakresie. Zwykle zajmuje 2 bajty (16 bitów) i ma zakres od -32,768 do 32,767.
- long– Typ całkowity o większym zakresie niż- int. Zajmuje przynajmniej 4 bajty, ale na niektórych platformach może mieć 8 bajtów.
- long long– Typ całkowity o bardzo dużym zakresie. Zwykle zajmuje 8 bajtów (64 bity) i może przechowywać wartości od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807.
- unsigned– Służy do oznaczenia zmiennych, które mogą przyjmować tylko wartości dodatnie. Na przykład,- unsigned intma zakres od 0 do 4,294,967,295.
Poniżej przedstawiamy przykład kodu, który ilustruje różne typy całkowite i ich zakresy.
Kod C++
#include <iostream>
#include <climits>  // Zawiera stałe określające zakresy typów całkowitych
int main() {
    // Deklaracja zmiennych różnych typów całkowitych
    int myInt = 100;  // Zmienna typu 'int' o wartości 100
    short myShort = 200;  // Zmienna typu 'short' o wartości 200
    long myLong = 100000L;  // Zmienna typu 'long' o wartości 100000
    long long myLongLong = 123456789LL;  // Zmienna typu 'long long' o dużej wartości
    unsigned int myUnsignedInt = 300;  // Zmienna typu 'unsigned int' o wartości 300
    // Wyświetlanie wartości zmiennych
    std::cout << "Wartość myInt: " << myInt << std::endl;
    std::cout << "Wartość myShort: " << myShort << std::endl;
    std::cout << "Wartość myLong: " << myLong << std::endl;
    std::cout << "Wartość myLongLong: " << myLongLong << std::endl;
    std::cout << "Wartość myUnsignedInt: " << myUnsignedInt << std::endl;
    // Wyświetlanie zakresów typów przy użyciu stałych z biblioteki <climits>
    std::cout << "Zakres typu 'int': od " << INT_MIN << " do " << INT_MAX << std::endl;
    std::cout << "Zakres typu 'short': od " << SHRT_MIN << " do " << SHRT_MAX << std::endl;
    std::cout << "Zakres typu 'long': od " << LONG_MIN << " do " << LONG_MAX << std::endl;
    std::cout << "Zakres typu 'long long': od " << LLONG_MIN << " do " << LLONG_MAX << std::endl;
    std::cout << "Zakres typu 'unsigned int': od 0 do " << UINT_MAX << std::endl;
    // Przykład przepełnienia zmiennej całkowitej
    myInt = INT_MAX;  // Przypisanie maksymalnej wartości dla 'int'
    std::cout << "Maksymalna wartość typu 'int': " << myInt << std::endl;
    myInt = myInt + 1;  // Przekroczenie zakresu typu 'int'
    std::cout << "Po przekroczeniu zakresu typu 'int': " << myInt << std::endl;
    return 0;  // Zakończenie programu
}
Jak działa program
- Program zaczyna się od zaimportowania biblioteki iostream, która pozwala na operacje wejścia/wyjścia, orazclimits, która zawiera stałe definiujące zakresy różnych typów całkowitych, takich jakINT_MIN,INT_MAX.
- Następnie deklaruje różne typy zmiennych całkowitych:
- int myInto wartości 100.
- short myShorto wartości 200.
- long myLongo wartości 100000.
- long long myLongLongo dużej wartości 123456789.
- unsigned int myUnsignedInto wartości 300, która może przechowywać tylko liczby nieujemne.
 
- Program wyświetla wartości tych zmiennych za pomocą std::cout.
- Program używa stałych z biblioteki <climits>do wyświetlenia zakresów każdego typu zmiennej. Na przykład,INT_MINiINT_MAXpokazują minimalną i maksymalną wartość, jaką może przechowywać typint.
- Następnie pokazuje, jak działa przepełnienie zmiennej:
- Ustawia wartość zmiennej myIntna jej maksymalną wartość (INT_MAX).
- Dodaje 1 do tej wartości, co powoduje przekroczenie zakresu typu int. Wynik przepełnienia zależy od architektury komputera, ale najczęściej prowadzi do “zawinięcia” wartości, co skutkuje negatywną liczbą.
 
- Ustawia wartość zmiennej 
- Program kończy się zwróceniem wartości 0, co oznacza, że zakończył się pomyślnie.
Podsumowanie
W tej lekcji dowiedziałeś się o różnych typach całkowitych w C++ i ich zakresach. Wiesz już, że:
- intto najbardziej powszechny typ całkowity.
- shortma mniejszy zakres niż- int.
- longi- long longmogą przechowywać bardzo duże wartości.
- unsignedpozwala na przechowywanie tylko liczb dodatnich, co zwiększa maksymalny zakres.
- Zakres każdego typu można sprawdzić za pomocą stałych z biblioteki <climits>.
- Przekroczenie zakresu zmiennej może prowadzić do przepełnienia, co może skutkować nieoczekiwanym zachowaniem programu.
Dzięki zrozumieniu różnych typów całkowitych w C++ będziesz w stanie dobrać odpowiedni typ zmiennej do danych, jakie chcesz przechowywać w swoich programach.
