unsigned w C++

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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.