38920

38920



39


SPECYFIK ATOR Y

zmiennej pierwszy bit z lewej strony (nazywany także bitem najbardziej znaczącym) przechowuje znak liczby. Efektem tego jest spadek "pojemności" zmiennej, czyli zmniejszenie największej wartości, którą możemy przechować w zmiennej.

Signed oznacza liczbę ze znakiem, unsigned — bez znaku (nieujemną). Mogą być zastosowane do typów: char i int i łączom* ze specyfikatorami short i long (gdy ma to sens).

Jeśli przy signed lub unsigned nie napiszemy, o jaki typ nam chodzi, kompilator przyjmie wartość domyślną czyli int.

Przykładowo dla zmiennej char(zajmującej 8 bitów zapisanej w formacie uzupełnień do dwóch) wygląda to tak:

signed char a;    /* zmienna a przyjmuje wartości od -128 do 127 */

unsigned char b;    /* zmienna b przyjmuje wartości od 0 do 255    */

unsigned short c; unsigned long int d;

Jeżeli nie podamy żadnego ze specyfikatora wtedy liczba jest domyślnie przyjmowana jako signed (nie dotyczy to typu char. dla którego jest to zależne od kompilatora).

signed int i = 0;

// jest równoznaczne z: int i ■ 0;

Liczby łx‘z znaku |>ozwalają nam zapisać większe liczby przy tej samej wielkości zmiennej — sile trzeba uważać, by nie zejść z nimi poniżej zera wtedy "przewijają" się na sam koniec zakresu, co może powodować t rudne do wykrycia błędy w programach.

short i long

Short i long są wskazówkami dla kompilatora, by zarezerwował dla danego typu mniej (odpowiednio — więcej) pamięci. Mogą być zastosowane do dwóch typów: int i double (tylko long), mając różne znaczenie.

Jeśli przy słiort lub long nie napiszemy, o jaki typ nam chodzi, kompilator przyjmie wartość domyślną czyli int.

Należy pamiętać, że to jedynie życzenie wobec kompilatora — w wielu kompilatorach typy int i kmg int mają ten sam rozmiar. Standard języka C nakłada jedynie na kompilatory następujące ograniczenia:    int nie może być krótszy niż 16 bi

tów; int musi być dłuższy lub równy short a nie może być dłuższy niż long:

short int nie może być krótszy niż 16 bitów; long int nie może być krótszy niż 32 bity:

Zazwyczaj typ int jest typem danych o długości odpowiadającej wielkości rejestrów procesora, czyli na procesorze szesnastobitowym ma 16 bitów, na trzydziesto-dwubitowym 32 itd.1. Z tego powodu, jeśli to tylko możliwe, do reprezentacji liczb całkowitych preferowane jest użycie typu int bez żadnych specyfikatorów rozmiaru.

1

Wiraże .się to z pewnymi uwarunkowaniami historycznymi. Podręcznik do języka C duetu K&R zakładał, żc typ int miał się odnosić do typowej dla danego procesora długości liczby całkowitej. Natomiast, jeśli procesor mógł olndugiwać typy dłuższe lub krótsze stutownego znaczenia nabierały modyfikatory short i long. Dolirym przykładem może być architektura i386, która umożliwia obliczenia na liczbach 16-bhowyeh. Dlatego toż modyfikator short powoduje skrócenie zmiennej do 16 bitów.



Wyszukiwarka

Podobne podstrony:
1. Pokoloruj pierwszy od lewej strony garnek. 2. Pokoloruj trzecią od lewej strony chmurkę. 3. Pokol
19(1) 1. Policz liście. Pierwszy liść z lewej strony pokoloruj na żółto, a drugi i pięty na jasnozie
18(1) 2 1.    Policz deski w płocie. Pierwszą deskę z lewej strony pokoloruj na zielo
81400 str12 (22) Pierwsi kosmonauci radzieccy, piloci Wostoków — od gó™ z lewej strony do prawej: J.
Na wykresie pokazano wartości lewej strony nierówności w zależności od zmiennej x zdefiniowanej powy
KOMNATA LICZB Pokoloruj samochód pierwszy na mecie. Pokoloruj co drugi trójkąt od lewej strony. Poko
Znaki Boczne Znaki lewej strony " Region A " Znaki prawej strony Światło czerwone Światło
— 130 — — 130 — r N. 16. Nosal (1215). Regiel, z lewej strony drogi, wiodącej z Zakopanego do Kuźnic
21 1 lewej strony ku prawej, po kolei: Bystrą (2250), Kamienistą (2128), ku Z. Smreczyński (2068),&n
SNB13665 74 Osoby niepełnosprawne w Polsce „ Renta na złamanie kręgosłupa, paraliż lewej strony po p
Poznajemy rysujemy dla 6 latków 46 Z lewej strony znajdują się portrety dzieci z różnych stron świa

więcej podobnych podstron