Czym jest unsigned w C++?
unsigned to słowo kluczowe w C++, które stosuje się przed typem całkowitym, aby oznaczyć go jako bez znaku. Oznacza to, że zmienna może przechowywać tylko liczby nieujemne, czyli 0 i liczby dodatnie.
Najczęściej spotykany zapis to:
unsigned int liczba;
Można też używać krótszej formy:
unsigned liczba;
W tym przypadku kompilator domyślnie traktuje typ jako unsigned int.
Przykłady użycia
unsigned int wiek = 18;
unsigned short licznik = 250;
unsigned long rozmiar = 1000000;
Typy unsigned są używane wtedy, gdy wartość z założenia nie powinna być ujemna, np. liczba elementów, rozmiar tablicy, identyfikator lub licznik.
Różnica między signed i unsigned
Zwykły typ int może przechowywać liczby ujemne i dodatnie, np. od około -2 147 483 648 do 2 147 483 647 dla 32 bitów.
Typ unsigned int nie przechowuje liczb ujemnych, ale ma większy zakres dodatni, np. od 0 do 4 294 967 295 dla 32 bitów.
Ważna uwaga
Przypisanie liczby ujemnej do zmiennej unsigned może dać nieoczekiwany wynik:
unsigned int x = -1;
Wartość nie będzie równa -1, ponieważ typ unsigned nie obsługuje liczb ujemnych. Na egzaminie należy zapamiętać: słowo kluczowe ograniczające zakres do liczb nieujemnych to unsigned.