лекція 3

Тип даних однозначно визначає:

Внутрішнє представлення даних - безліч їх значень

Допустимі дії над даними (операції і функції)

Кожен вираз в програмі має певний тип. Пам'ять, в якій зберігаються дані під час виконання програми, діляться на дві області - стек і динамічна пам'ять. Стек використовується для зберігання величин, пам'ять під які виділяє компілятор. У динамічній області пам'яті (heap- купа) пам'ять резервується і звільняється під час виконання програми за допомогою спеціальних команд самим програмістом.

Класифікація типів даних в С # представлена ​​на малюнку 3.1

лекція 3

Малюнок 3.1 - Класифікація типів даних в С # за різними ознаками

вбудовані типи

Вбудовані типи наведені в таблиці 3.1. Вони однозначно відповідають стандартним класам бібліотеки .NET певним в просторі імен System.

Як видно з таблиці, існує кілька варіантів представлення цілих і речових величин.

Внутрішнє представлення величини цілого типу - ціле число в двійковому коді. У знакових типах старший біт числа інтерпретується як знаковий (0-позитивне число, 1-негативне). Негативні числа найчастіше представляються в додатковому коді - все розряди числа, крім знакового розряду, інвертується, потім до числа додається одиниця, і знакової біту присвоюється одиниця. Беззнакові типи дозволяють представляти тільки позитивні числа, оскільки старший розряд розглядається як частина коду числа.

Речові типи зберігаються в пам'яті інакше, ніж цілочисельні. Внутрішнє представлення величини дійсного типу складається з двох частин - мантиси і порядку, кожна частина має знак. Довжина мантиси визначає точність числа, а довжина близько - його діапазон. Наприклад, число 0,381 * 10 ^ 4 зберігаються цифри мантиси 381 і порядок 4, для числа 560,3 * 10 ^ 2 - мантиса 5603 і порядок 5.

Тип decimal призначений для грошових обчислень, в яких критичні помилки округлення. Дані тип не відноситься до речових типам, у них різний внутрішнєподання. Величини грошового типу не можна використовувати в одному виразі з речовими буз явного перетворення типу.

Будь вбудований тип мови С # відповідає стандартному класу бібліотеки .NET. Скрізь, де використовується ім'я вбудованого типу його можна замінити ім'ям класу бібліотеки System. Це означає, що у вбудованих типів є методи і поля. наприклад:

double.MaxValue (System.Double.MaxValue) - максимальне значення числа типу double.

uint.MinValue (System.UInt32.MinValue) - мінімальне значення числа типу uint.

Таблиця 3.1 - Вбудовані типи мови С #

Схожі статті