Typy Całkowite w C++

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++

  1. 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.
  2. short – Typ całkowity o mniejszym zakresie. Zwykle zajmuje 2 bajty (16 bitów) i ma zakres od -32,768 do 32,767.
  3. 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.
  4. 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.
  5. unsigned – Służy do oznaczenia zmiennych, które mogą przyjmować tylko wartości dodatnie. Na przykład, unsigned int ma 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

  1. Program zaczyna się od zaimportowania biblioteki iostream, która pozwala na operacje wejścia/wyjścia, oraz climits, która zawiera stałe definiujące zakresy różnych typów całkowitych, takich jak INT_MIN, INT_MAX.
  2. Następnie deklaruje różne typy zmiennych całkowitych:
    • int myInt o wartości 100.
    • short myShort o wartości 200.
    • long myLong o wartości 100000.
    • long long myLongLong o dużej wartości 123456789.
    • unsigned int myUnsignedInt o wartości 300, która może przechowywać tylko liczby nieujemne.
  3. Program wyświetla wartości tych zmiennych za pomocą std::cout.
  4. Program używa stałych z biblioteki <climits> do wyświetlenia zakresów każdego typu zmiennej. Na przykład, INT_MIN i INT_MAX pokazują minimalną i maksymalną wartość, jaką może przechowywać typ int.
  5. Następnie pokazuje, jak działa przepełnienie zmiennej:
    • Ustawia wartość zmiennej myInt na 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ą.
  6. 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:

  • int to najbardziej powszechny typ całkowity.
  • short ma mniejszy zakres niż int.
  • long i long long mogą przechowywać bardzo duże wartości.
  • unsigned pozwala 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.

 

 

Scroll to Top