В компютъра числата се представят в двоична бройна система.
Цели числа
|
Цяло положително
|
Цяло отрицателно
|
Пряк код
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
Обратен код
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
Допълнителен код
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
1
|
Таблицата показва представянето на числото 5 (-5) в един байт; първият бит е знаков; знакът е “-“ ако знаковият бит е 1; обратният код за отрицателните цели числа се получава от прекия код, като се обърнат всички битове без знаковия; допълнителният код за цели отрицателни числа се получава като към обратният код прибавим 1 (аритметично). В C++ за представянето на числа се използва допълнителният код.
Числа с плаваща запетая се представят като m x 2p, където m е мантисата (числовият запис на числото); а p > 0 е порядък на числото; допуска се m да е със знак
Ако имаме 4 байта, едно число с плаваща запетая може да се представи чрез 1 бит (знак на мантисата) + 8 бита (порядъка) +
23 бита (мантисата); за да можем да получим и отрицателен порядък числата се изчисляват като m x 2p-const; това се прави с цел множеството от допустимите стойности на порядъка да е симетрично отностно нулата; обикновено мантисата е нормализирана (нейната цяла част е съставена от една цифра и е възможно тя да не се пази, ако цифрата е фиксирана, например 1), т.е. тя е от вида y.xxxxxx, където x са някакви битове (0 или 1), a y е цифра (представена също с битове);
15 октомври
5. Константи. Видове. Вътрешно представяне.
#include
void main ()
{ int a, p, s;
printf ( “ Въведи а = “);
scanf ( “%d”,a);
s = a*a;
p = 4*a;
printf (“ S = %d\n “,s);
printf (“ P = %d\n “,p);
}
Допустимите символи, които могат да се използват в една програма се делят на четири групи:
-
букви – главни и малки латински букви + символ за подчертаване
-
цифри – арабските цифри от 0 до 9
-
празни символи – символи, които нямат явен графичен вид – интервал, символ за табулация, символ за нов ред и др.
-
специални символи – всички останали
Някои оператори са комбинация от символи (например >=, <=, ==, !=)
Идентификатор – последователност от букви и цифри, която започва с буква; дължината не е фиксирана, но компилаторът има лимит (например 32 символа) и счита за еднакви идентификатори, за които първият символ по-който се различават е извън този лимит
Резервирани (ключови) думи – резервирани идентификатори, които изпълняват вградени функции и потребителят не може да ги използва за имена на свои променливи или фукнции
Служебните идентификатори започват с “_” и затова не се препоръчва потребителят да ползва този символ за начало на свой идентификатор
В низ от символи може да се използват всички символи, поддържани от конфигурацията на компютъра
Ключовите думи в C са задължително с малки букви.
Синтаксис – правила за изграждане на програмата като текст (низ от символи)
Семантика – правила по които се изпълнява дадена програма или инструкция
Числовите константите в C могат да бъдат:
-
цели – десетични – те не трябва да започват с нула (25, -313 и т.н.); осмични – започват с 0 (0713, 05264 и т.н.); шестнадесетични – започват с 0x или 0X (0xAbC, 0xA231bB, и т.н.), няма значение дали шестнадесетичните константи са с малки или големи букви;
-
дробно – десетични – представят се с десетична точка (тя е задължителна дори числото да е цяло); два начина за представяне – като десетично число (34.5, -33.1, 5. , .3 и т.н.); с мантиса и порядък (24е-5 = 24. 10-5,
32Е13 = 32. 1013 и т.н.)
Целите числовите константи могат да бъдат от следните типове:
-
signed int (signed може да се пропусне) – целочислен тип 2 байта [ -32 768; 32767 ]
-
unsigned int – целочислен тип 2 байта [ 0; 65535 ]
-
signed long int (int и signed могат да се пропуснат) – целочислен тип 4 байта [ -2 147 483 648; 2 147 483 647 ]
-
unsigned long int (int може да се пропусне) - целочислен тип 4 байта [ 0; 4 294 967 295]
Типа на една цяла целочислена константа по подразбиране е най-малкият възможен за нея (например 12 е тип int; 1000000 е тип long);
има суфикси, които могат да се използват за да се смени типа на константа; добавят се в нейният край:
-
L (l) за long (например 423l, -1L)
-
U (u) за unsigned long (например 145u, 65000U)
Дробно-десетичните числови константи са от следните типове:
-
double – реален тип (с плаваща десетична точка); 8 байта, точност 15 цифри; ~ [ 10-308 .. 10308 ] по абсолютна стойност
-
long double – реален тип (с плаваща десетична точка); 10 байта, точност 19 цифри; ~ [ 10-4932 .. 104932 ] по абсолютна стойност
-
float – реален тип (с плаваща десетична точка); 4 байта, точност 7 цифри; ~ [ 10-308 .. 10308 ] по абсолютна стойност
Една дробно-десетична константа по подразбиране е от тип double; могат да се добавят суфикси за да се промени нейният тип:
-
F (f) за float (например 3.4f, –3.53F и т.н.)
-
L (l) за long double (например 23.5l, -34.3L)
Символни константи – единичен символ, заграден в апострофи (‘’); един символ е един байт; един символ се съпоставя на точно едно число по определен начин; в езика C (както и в много други езици) стандартът е ASCII (American Standard Code for Information Interchange); кодът се задава в десетична, осмична или шестнадесетична система
Низови константи – последователност от символи, заградени в кавички; на всеки символ съответства байт, но накрая има един нулев байт (той е признак за край във вътрешното представяне);
представяне на особени символи в низ:
-
\’ – представяне на апостроф
-
\” - представяне на кавичка
-
\\ - представяне на обратна черта
-
\осм. код; \xшестн. код – представяне на символи, които нямат графично изображение
-
\0 – нулев байт
-
\b – бекспейс
-
\r – carriage return (позиционира в началото на реда)
-
\f – минава на следваща страница
-
\n – минава на нов ред
-
\t – табулация
6. Променливи и типове данни.
Променлива – съдържа име и стойност; името е идентификатор, стойността е според типа на променливата
Една променлива трябва да се дефинира задължително преди да се използва: тип списък_от_променливи;
типове:
-
char – символен тип (1 байт); може да е с модификация signed или unsigned; в C++ може да се интерпретира като числов тип
-
int – целочислен тип (при 16 битовите компилатори – 2 байта (int = signed int), при 32 битовите – 4 байта
(int = signed long int); допуска модификации signed, unsigned, long, short
-
float – тип с плаваща точка (4 байта);
-
double – тип с плаваща точка (двойна точност) (8 байта); допуска модификация long
Операция sizeof(тип) връща колко байта заема типа;
Когато компилаторът обработи дефиницията на променлива, той заделя памет в зависимост от нейният тип; типът определя по какъв начин се кодира стойността на променливата в паметта, определя и множеството от допустимите стойности на променливата; например – целият тип int обхваща всички цели числа от интервала
[-32768, 32767 ]; не е така при double – там се вземат краен брой рационални числа от диапазона
Сподели с приятели: |