Простые
типы данных
Простые типы данных
— это такие типы, которые не содержат в себе данные других типов. К таким типам
относятся:
Все эти типы, кроме вещественного,
являются так называемыми порядковыми типами данных.
Порядковым типом
данных называется такой тип данных, значения которого образуют упорядоченную
последовательность с разницей в единицу.
Над порядковыми типами
данных допустимо производить следующие операции:
Low(t)
— минимальное значение данных типа t; High(t) —
максимальное значение данных типа t; Ord(x)
— порядковый номер значения х; Pred(x)
— значение, предшествующее значению х; Succ(x)
— значение, следующее после значения х.Кроме того, над перечислимыми
типами данных допустимы следующие процедуры:
Dec (х) —
уменьшение значения переменной х на единицу; Inc (х) —
увеличение значения переменной х на единицу. Рассмотрим по порядку простые
типы данных.
Целочисленные типы данных
В языке Object Pascal определено
несколько целочисленных типов данных. Самый используемый из них — тип
Integer. В табл. 2.1 приведены все целочисленные типы данных.
Таблица
2.1. Целочисленные типы данных
|
Тип данных |
Диапазон значений |
Формат чисел
в памяти |
|
|
-2 147 483 648-2
147 483 647 |
32 бита со знаком |
|
|
0-4 294 967 295 |
32 бита без знака |
|
|
-128-127 |
8 битов со знаком |
|
|
-32 768-32 767 |
16 битов со знаком |
|
|
-2 147 483 648-2
147 483 647 |
32 бита со знаком |
|
|
-2^63-2^63-1 |
64 бита со знаком |
|
|
0-255 |
8 битов без знака |
|
|
0-65 535 |
16 битов без знака |
|
|
0-4 294 967 295 |
32 бита без знака |
Для записи целых чисел
можно использовать знаки "+" и "—". Если знак числа отсутствует,
число считается положительным.
Вещественные типы данных
Наиболее используемым вещественным
типом является тип Real. Переменные этого типа могут содержать
любые непорядковые числовые значения со знаком. Различия вещественных типов
данных заключаются в основном в отличии числа знаков после запятой (точности).
Табл. 2.2 содержит перечень вещественных типов данных языка Object Pascal.
Таблица
2.2. Вещественные типы данных
|
Тип данных |
Диапазон значений |
Точность (знаков) |
Количество байт |
|
|
2,9x10^- 39-1,7х10^38 |
11-12 |
6 |
|
|
1,5х10^- 45-3,4х10^38 |
7-8 |
4 |
|
|
5,0x10^- 324-1,7х10^308 |
15-16 |
8 |
|
|
3,6х10^- 4951-1,1х10^4932 |
19-20 |
10 |
|
|
-2^63+1- 2^63-1 |
19-20 |
8 |
|
|
-922 337 203 685
477,5808 - 922 337 203 685 477,5807 |
19-20 |
8 |
|
|
5,0x10^- 324 -1,7х10^308 |
15-16 |
8 |
Примечание
Шестибайтовый тип
Real 48применялся в ранних версиях языка Object Pascal как Real. Если вы перекомпилируете код, который использовал ранний шестибайтовый типReal, вы можете для удобства изменить его наReal 48. Кроме того, вы можете применить директиву компилятора{$REALCOMPATIBILITY ON}для автоматического перевода типаRealв шестибайтовый.
О вышеперечисленных типах
можно еще сказать следующее:
Real 48
добавлен в язык для обратной совместимости со старыми версиями программ. Так
как такой формат данных не является "родным" для процессоров семейства
Intel, использование типа Real 48 замедляет скорость выполнения
программы;Extended
предлагает большую точность, чем другие вещественные типы, но является
наименее компактным. Будьте осторожны при использовании данного типа, если
вы хотите создавать программы сразу для нескольких платформ;Comp
является "родным" для семейства процессоров Intel и представляет
собой 64-разрядное целое число. Данный тип не относится к целым типам, т.
к. не является порядковым и при присваивании переменной данного
типа вещественного числа происходит его округление до ближайшего целого. Кроме
того, данный тип не поддерживает некоторые операции, допустимые над целыми
порядковыми числами (Inc(x), Dec(x) и др.). Этот тип используется
лишь для обратной совместимости. Для лучшего быстродействия воспользуйтесь
типом Int64;Currency
является типом с фиксированной запятой, которая применяется для уменьшения
ошибок при вычислениях, связанных с денежными суммами. Данный тип представляет
собой 64-разрядное целое число с четырьмя знаками после запятой. Над вещественными числами
допускается осуществлять следующие операции:
Round (х) —
округление числа х;Trunc (х) —
отбрасывание дробной части числа х. Логические типы данных
Для хранения логических
значений Object Pascal использует тип данных Boolean. Переменная
логического типа занимает один байт памяти и может принимать два значения: 1
или 0. Значение 1 соответствует значению True (истина). Значение
0 соответствует значению False (ложь). Из-за того, что данный тип
не совместим с подобными логическими типами, применяемыми в других языках программирования,
Object Pascal имеет три дополнительных логических типа:
ByteBool —
порядковое численное значение от 0 до 255, где 0 соответствует значению False,
а все остальные числа — значению True. Данный тип занимает 1
байт памяти;WordBool —
порядковое числовое значение от 0 до 65 535, где 0 соответствует значению
False, а все остальные числа — значению True. Данный
тип занимает 2 байта памяти;LongBool —
порядковое числовое значение от 0 до 4 294 967 295, где 0 соответствует значению
False, а все остальные числа — значению True. Данный
тип занимает 4 байта памяти. Операции над этими типами
могут привести к разным значениям. В табл. 2.3 вы найдете отличия в результатах
операций над различными логическими типами.
Таблица
2.3. Отличия результатов операций над логическими типами
|
Тип данных |
Типы данных |
|
|
|
|
|
|
Таблица
2.3 (окончание)
|
Тип данных |
Типы данных
|
|
|
|
|
|
|
|
|
|
Символьные типы данных
Основным символьным типом
является Сhar. Данный тип используется для хранения символа из
таблицы ASCII. Каждый символ в данной таблице представлен числовым значением
от 0 до 255, поэтому переменная такого типа занимает в памяти всего 1 байт.
Кроме типа Char,
язык Object Pascal имеет еще два символьных типа:
AnsiChar
является полным аналогом типа Сhar. Занимает 1 байт памяти;WideChar
— тип, который используется для хранения символов в кодировке Unicode. Данная
кодировка ограничена не 256-ю а 65 535-ю символами. Занимает 2 байта памяти.Над символьными типами данных
допустимы следующие операции:
Chr (x) —
возвращает символ с кодом, который соответствует целочисленному значению х;UрСаsе(с) —
возвращает символ с, преобразованный в верхний регистр (то есть преобразует
прописные буквы в заглавные).