Простые
типы данных
Простые типы данных
— это такие типы, которые не содержат в себе данные других типов. К таким типам
относятся:
Все эти типы, кроме вещественного,
являются так называемыми порядковыми типами данных.
Порядковым типом
данных называется такой тип данных, значения которого образуют упорядоченную
последовательность с разницей в единицу.
Над порядковыми типами
данных допустимо производить следующие операции:
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е(с)
—
возвращает символ с, преобразованный в верхний регистр (то есть преобразует
прописные буквы в заглавные).