Топ питань
Часова шкала
Чат
Перспективи
Примітивний тип даних
базовий тип даних, який можна використати для створення складніших складених типів даних З Вікіпедії, вільної енциклопедії
Remove ads
В інформатиці примітивні типи даних — це набір основних типів даних, з яких будуються всі інші типи даних[1]. Зокрема, це часто відноситься до обмеженого набору представлень даних, які використовуються конкретним процесором, які повинні використовувати всі скомпільовані програми. Більшість процесорів підтримують подібний набір примітивних типів даних, хоча конкретні представлення відрізняються[2]. Загалом, «примітивні типи даних» можуть стосуватися стандартних типів даних, вбудованих у мову програмування[3][4]. Типи даних, які не є примітивними, називаються похідними або складеними[3].
Примітивні типи майже завжди є типами значень, але складені типи також можуть бути типами значень[5].
Remove ads
Поширені примітивні типи даних
Узагальнити
Перспектива
Набір примітивних типів даних віртуальної машини Java[6]:
- Цілі типи з різними діапазонами та точністю (
byte
,short
,int
,long
,char
) - Число з рухомою комою з одинарною або подвійною точністю; (
float
,double
) - Булеві, логічні значення true та false. (
boolean
) - Значення, що стосується адреси виконуваної пам’яті. (
returnAddress
) Це недоступне з мови програмування Java і зазвичай не вказано[7][8].
Ці примітивні типи, як правило, точно підтримуються апаратним забезпеченням комп’ютера, за винятком, можливо, змінних розмірів цілих чи апаратних засобів, у яких відсутня плаваюча точка. Операції над такими примітивами зазвичай досить ефективні. Примітивні типи даних, які є рідними для процесора, мають однозначну відповідність з об'єктами в пам'яті комп'ютера, і операції з цими типами часто є найшвидшими з можливих у більшості випадків[9]. Цілочисельне додавання, наприклад, може виконуватися як одна машинна інструкція, а деякі пропонують спеціальні інструкції для обробки послідовностей символів за допомогою однієї інструкції[10]. Але вибір примітивного типу даних може вплинути на продуктивність, наприклад, швидше за допомогою операцій SIMD і типів даних працювати з масивом чисел з плаваючою точкою.[9]:113
Набір базових типів даних C подібний до Java. Існує мінімум чотири типи: char
, int
, float
, та double
, але кваліфікатори short
, long
, signed
, та unsigned
означають, що C містить численні залежні від цілі цілі чи примітивні типи з плаваючою комою[11].
Цілі числа
Тип даних ціле представляє деякий діапазон цілих математичних чисел. Цілі числа можуть бути або зі знаком (допускаються від’ємні значення), або без знаку (тільки невід’ємні цілі числа). Загальні діапазони:
Числа з плаваючою комою
Число з плаваючою комою представляє раціональне число обмеженої точності, яке може мати дробову частину. Ці числа зберігаються всередині у форматі, еквівалентному науковій нотації, зазвичай у двійковій, але іноді в десятковій. Оскільки числа з плаваючою комою мають обмежену точність, лише підмножина дійсних чи раціональних чисел можна точно представити; інші числа можна представити лише приблизно. Багато мов мають як одинарну точність (часто звану «float»), так і подвійну точність (часто звану «подвійною»).
Логічні значення
Булевий тип, який зазвичай позначається як «bool» або «boolean», зазвичай є «логічним типом», який може мати значення «true» або значення «false». Хоча лише один біт необхідний для розміщення набору значень "true" і "false", мови програмування зазвичай реалізують булеві типи як один або більше байтів.
Багато мов (наприклад, Java, Pascal і Ada) реалізують булеві значення, дотримуючись концепції boolean як окремий логічний тип. Однак деякі мови іноді можуть неявно перетворювати логічні значення в «числові типи», щоб надати розширену семантику логічним значенням і логічним виразам або досягти зворотної сумісності з попередніми версіями мови. Наприклад, ранні версії мови програмування C, які слідували за ANSI C та його попередніми стандартами, не мали спеціального логічного типу. Натомість числові значення нуля інтерпретуються як «хибні», а будь-які інші значення інтерпретуються як «істинні»[13]. Новіший C99 додав чітке логічне значення тип, який можна включити до stdbool.h[14], і C++ підтримує bool
як вбудований тип і "true" і "false" як зарезервовані слова[15].
Remove ads
Схема XML
Мова XML Schema Definition надає набір із 19 простих типів даних[16]:
рядок
: рядок, послідовність Кодова точка Unicodeboolean
: booleandecimal
: число, представлене за допомогою десяткового.float
іdouble
: числа з рухомою комою.тривалість
,dateTime
,time
,date
,gYearMonth
,gYear
,gMonthDay
,gDay
іgMonth
: Календарна дата і часhexBinary
іbase64Binary
: двійкові дані закодовані як шістнадцятковий або Base64anyURI
: a URIQName
: кваліфіковане ім’яNOTATION
: QName, оголошене як нотація в схемі. Нотації використовуються для вбудовування типів даних, відмінних від XML[17]. Цей тип не можна використовувати безпосередньо – можна використовувати лише похідні типи, які перераховують обмежений набір QNames.
Remove ads
Вбудовані типи
Узагальнити
Перспектива
У JavaScript є 7 примітивних типів даних: рядок, число, bigint, логічний, невизначений, символ і нуль. Це не об’єкти й не мають методів[18].
У Visual Basic .NET примітивні типи даних складаються з 4 інтегральних типів, 2 типів із плаваючою комою, 16-байтового десяткового типу, логічного типу, типу дати/часу, символьного типу Unicode та Тип рядка Unicode[19].
Загалом типи даних, які можуть бути вбудовані в складні мови програмування, включають:
- Символи та рядки (див. нижче)
- Діапазони (див. нижче)
- Tuple у Standard ML, Python, Scala, Swift, Elixir
- List у Common Lisp, Python, Scheme, Haskell
- Число з фіксованою комою з різними точністю та шкалою, вибраною програмістом.
- Комплексне число у C99, Fortran, Common Lisp, Python, D, Go. Це два числа з плаваючою комою, дійсна частина та уявна частина.
- Раціональне число в Common Lisp
- Довільна точність Тип
Integer
у Common Lisp, Erlang, Haskell - Асоціативний масив у Perl, PHP, Python, Ruby, JavaScript, Lua, D, Go
- Посилання (також називається Вказівник або дескриптор або дескриптор),
- Функція першого класу, усіма функціональними мовами , JavaScript, Lua, D, Go, а також у нових стандартах C++, Java, C#, Perl
Символи та рядки
Тип символ — це тип, який може представляти всі символи Юнікоду, отже, має мати принаймні 21 біт. Деякі мови, такі як Julia, включають справжній 32-розрядний тип символів Unicode як примітивний[20]. Інші мови, як-от JavaScript, Python , Ruby та багато діалектів BASIC не мають примітивного типу символів, натомість додають рядки як примітивний тип даних, зазвичай з використанням кодування UTF-8. Рядки довжиною в один зазвичай використовуються для представлення окремих символів.
Деякі мови мають «символьні» або «рядкові» типи, які занадто малі, щоб представити всі символи чи рядки Unicode. Їх правильніше класифікувати як цілі типи. Наприклад, C містить тип char
, але він визначений як найменша адресатна одиниця пам’яті, яка за деякими стандартами, такими як POSIX, вимагає 8 біт. Остання версія цих стандартів посилається на char
як на числовий тип. char
також використовується для 16-бітного цілого типу в Java, але знову ж таки це не тип символів Unicode[21]. Деяке комп’ютерне обладнання має кілька інструкцій, які стосуються «рядків», які стосуються послідовності байтів. Наприклад, x86-64 може переміщувати, встановлювати, шукати або порівнювати послідовність елементів, де елемент може мати довжину 1, 2, 4 або 8 байтів[22].
Діапазон
Тип числових даних діапазон має максимальне та мінімальне значення, вбудовані в тип. Він включений до деяких мов, таких як Ada і Pascal. Спроба зберегти число за межами діапазону може призвести до помилок компілятора/виконання або до неправильних обчислень (через усічення) залежно від мови, яка використовується. На практиці компілятор автоматично вибирає найбільш відповідний примітивний цілий тип або тип з плаваючою комою.
Remove ads
Дивитися також
Примітки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads