Тип даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Тип даних — характеристика, яку явно чи неявно надано об'єкту (змінній, функції, полю запису, константі, масиву тощо). Тип даних визначає множину припустимих значень, формат їхнього збереження, розмір виділеної пам'яті та набір операцій, які можна робити над даними.

Машинні типи даних[ред.ред. код]

У всіх комп'ютерах, основаних на цифровій електроніці, інформація на найнижчому рівні представляється у вигляді бітів (із значенням 0 або 1). Найменша адресована одиниця інформації називається байт (зазвичай як октет, який містить 8 бітів). Одиниця інформації, яка оброблюється інструкціями машинного коду, називається словом (станом на 2006 рік, зазвичай по 32 або 64 біти). Більшість інструкцій сприймають слово як двійкове число, щоб 32-бітне слово могло бути представлене беззнаковим цілим числом від 0 до 2^{32}-1, або знакове ціле від -2^{31} до 2^{31}-1. Через наявність доповнюючого коду, машині не потрібно розрізняти знакове та беззнакове числа для більшості випадків.

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

Прості типи даних[ред.ред. код]

Мови програмування представляють деякі прості типи даних(або примітивні), як базові блоки для програм та спеціалізованіших складних типів даних. Зазвичай прості типи даних включають числові (кілька цілих та дійсних типів), логічний (булевий), символьний та байтовий.

Числові типи даних[ред.ред. код]

Цілі числа[ред.ред. код]

Цілі числа (англ. integer) не можуть містити у собі дріб. Для від'ємного числа треба ставити знак мінус (-) перед значенням (числом). Неможна використовувати кому у введені такого числа, бо інакше буде викликана синтаксична помилка. Приклади цілих чисел:

  • 42
  • 10000
  • −233000
  • −100

Дійсні числа[ред.ред. код]

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

  • 20.0005
  • 99.9
  • −5000.12
  • −9999.9991

Діапазони числових типів даних[ред.ред. код]

Кожне числовий тип даних має мінімальне та максимальне значення, яке називають діапазон значень. Важливо знати діапазон значень, особливо, коли працюєш з «маленькими» типами даних, оскільки у них можна зберігати лише значення у вузькому діапазоні. Спроба внести число, більше за доступний діапазон може призвести до помилок періоду компіляції/виконання, або до неправильних підрахунків (через відкидання) залежно від мови програмування, яка використовується.

Діапазон змінних оснований на кількості байтів відведених для збереження значення. Цілі типи даних зазвичай [1] здатні зберігати 2^n значень (де n — це кількість байтів, що еквівалентно до 2^8n бітів). Для інших типів даних (напр. дійсних чисел) діапазон заплутаніший, та залежить від методу зберігання інформації у ньому. Існують також типи даних, які не використовують весь байт, напр. булеві, яким потрібен лише один біт, і являє собою двійкове значення (хоча на практиці використовується весь байт, то 7 бітів залишаються невикористаними).

Таблиця показує набір загальновживаних числових типів даних та їхніх діапазонів[2]:

Тип даних Розмір Діапазон
Цілі типи
Булеві 1 біт (хоча зазвичай зберігається як 1 байт) 0 до 1
Байт 8 бітів 0 до 255
Слово 2 байти 0 до 65535
Подвійне слово 4 байти 0 до 4,294,967,295
Ціле число 4 байта −2,147,483,648 до 2,147,483,647
Подвійне ціле 8 байтів −9,223,372,036,854,775,808 до 9,223,372,036,854,775,807
Дійсні типи
Дійсне 4 байти 1E-37 до 1E+37 (6 десятичних цифр)
Подвійної точності 8 байтів 1E-307 до 1E+308 (15 десяткових цифр)

Логічний тип даних[ред.ред. код]

Тип даних, об'єкти якого можуть приймати одне з двох значень: істина (англ. true) та хибність (англ. false).

Перелічуваний тип даних[ред.ред. код]

Перелічуваний тип, перелік (англ. enumeration type) — тип даних, що описується шляхом перелічення всіх можливих значень (кожне з яких позначається власним ідентифікатором), які можуть приймати об'єкти даного типу. Приклад (Pascal):

type Cardsuit = (clubs, diamonds, hearts, spades);

Символьний тип даних[ред.ред. код]

Тип даних, що описує літери та інші знаки, використовувані на письмі. В залежності від мови програмування та конкретної реалізації, може займати 1 чи 2 байти, рідше 4. Однобайтний символьний тип може використовуватись для представлення символів з набору ASCII та інших восьмирозрядних кодувань, тоді як для представлення символів з набору Unicode потрібно щонайменше 2 байти.

Складні типи даних[ред.ред. код]

Складні типи даних — це типи, які складаються з елементів, що відносяться до простих типів. До складних типів даних відносяться: масиви; множини; рядки; записи; файли; динамічні змінні; вказівники; лінійні списки (стеки, черги); нелінійні списки (двійкові дерева, несиметричні дерева, тексти, графи); процедурний тип; об'єкти[3].

Рядки[ред.ред. код]

Рядки (англ. string) — нечисловий тип даних, та використовується для збереження букв та слів. Усі рядки складаються з символів. Рядки можуть містити цифри та числа, але все одно будуть оброблятися як текст. Приклади рядків:

  • «A»
  • «Hello World»
  • «Телефон»
  • «Мені 99 років»
  • «1.2.3.4.5.6.7.8.9»

У деяких мовах програмування кількість символів у рядку може бути обмежена, у інших довжина рядка може обмежуватись лише кількістю пам'яті у комп'ютері. Можуть бути також порожні рядки.

Структури даних[ред.ред. код]

Докладніше: Структура даних

Абстрактні типи[ред.ред. код]

Докладніше: Абстрактний тип

Векторні типи[ред.ред. код]

Векторний тип даних — це тип даних котрий будується на основі простих типів даних. Усі елементи векторного типу даних розташовані підряд, у межах створеного об'єкту. Використанні даного типу даних у GPGPU технологіях дозволяє зменшити час обчислення математичних операції, так як на GPU час витрачений на математичну операцію над векторним типом приблизно дорівнює часу котрий треба витратити на цю саму операцію для базового типу. Елементи векторного типу у оперативній пам'яті розташовані підряд, як у масиві, завдяки чому витрачається менше часу на зчитування та запис.

Див. також[ред.ред. код]

Примітки[ред.ред. код]

  1. Бувають ситуації, коли один або більше бітів відводиться для інших функцій, наприклад, перевірки парності.
  2. Зауважте, що розмір більшості типів даних різниться в залежності від платформи та мови програмування. Наведені тут розміри є найвживанішими на сьогодні.
  3. Складні типи даних.

Посилання[ред.ред. код]

  • Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism, [1] from Computing Surveys, (December, 1985)


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.