Unsigned

komputer098

unsigned - to słowo zastrzeżone kompilatora i nie można go używać w nazwach funkcji, stałych i zmiennych. Oznacza ono, że dana wartość nie może być ujemna (dosłownie z ang. nieoznaczona, czyli bez znaku minus). Ilość zajmowanej przez nią pamięci nie zmienia się, ale zakres wartości jest sumą zakresu ujemnego i dodatniego, czyli np.: zakres od -128 do 127 → od 0 do 255.
Typ znakowy char czasem jest bez znaku, czasem ze znakiem. Jeśli chcemy wymusić żeby był bez, możemy napisać:

unsigned char zmienna ;

2 komentarzy

dobra, totalnie spaliłem tego arta...

Niby trywialne zagadnienie, a bzdura bzdurą pogania. Po pierwsze niemożliwy jest zakres od -459 do 459. Jak już, to -459 do 458, któremu w unsigned odpowiadałby zakres 0 do 917 (a nie do 918). Tak czy owak, cały przykład jest do chrzanu, bo to nie są potęgi dwójki. Prawidłowy przykład to od -128 do 127, co odpowiada zakresowi od 0 do 255.
Druga bzdura - char w C i C++ jest typem signed! Tak więc unsigned char i char to nie jest to samo!
char a = -5; if(a < 0) printf("CHAR jest typem znakowanym!\n");
Se skompiluj i się przekonaj.
Słowa unsigned jak najbardziej można używać w nazwach funkcji, stałych i zmiennych.
unsigned int unsigned_function();
unsigned int unsigned_variable;
Słowa 'unsigned' nie można używać jako nazwy funkcji, stałej, zmiennej, klasy i typu.