Zauważyliśmy również, że możemy zadeklarować nasze liczby całkowite jako ze znakiem lub bez znaku:
Zmienna 2-bajtowa (16-bitowa) może być używana do reprezentowania 216=65 536 różnych ciągów zer i jedynek. W przypadku int ze znakiem ciągi te mogą być używane do reprezentowania zarówno wartości ujemnych, jak i dodatnich w zakresie od –32 768 do +32 767. Dla porównania, w przypadku int bez znaku, ciągi te mogą być używane do reprezentowania tylko wartości dodatnich w zakresie od 0 do 65 535.
Hej, krótkie rzeczy!
Istnieją również krótkie (short) i długie (long) odmiany int:
Sytuacja nie wygląda źle, jeśli jesteś hobbystą piszącym kod tylko dla jednego procesora. Jednak w zależności od rozmiaru liczb, które próbujesz reprezentować, mogą pojawić się problemy, jeśli spróbujesz przenieść swój kod z maszyny obsługującej czterobajtowe liczby całkowite na taką, której liczby całkowite mają na przykład tylko dwa bajty. Aby obejść ten problem, możemy użyć typów liczb całkowitych o stałej szerokości, które są dostępne od wersji v11 języka C++; na przykład:
int8_t Cuthbert; // Jednoznacznie 8 bitów (jeden bajt)
uint8_t Clarence; // Niewątpliwie 8 bitów (jeden bajt)
Istnieją również 16-bitowe (int16_t i uint16_t), 32-bitowe
(int32_t i uint32_t) i 64-bitowe (int64_t i uint64_t) odpowiedniki tych typów o stałej szerokości.