Типы данных
Некоторые простые типы делятся на физические (фундаментальные) и общие. Физические закладываются в язык при его разработке и не зависят от особенностей компилятора. Общие типы соответствуют одному (или нескольким) из физических типов и их использование считается предпочтительным, так как компилятор создает более эффективный код.
Программа на Object Pascal может оперировать различными типами данных: целыми и дробными числами, отдельными символами и строками символов, логическими величинами.
Целые типы
В табл.7.1 перечислены целые типы, используемые в Delphi 7.
Таблица 7.1. Целые типы в Delphi 7
ТИП | ДИАПАЗОН | КОЛИЧЕСТВО БАЙТ |
integer | —2147483648..2147483647 | |
cardinal | 0..4294967295 | |
shortint | —128..127 | |
smallint | —32768..32767 | |
longint | —2147483648..2147483647 | |
byte | 0..255 | |
word | 0..65535 | |
Int64 | -2+63..2+63-1 | |
longword | 0..4294967295 |
Наибольшая производительность центрального процессора и ОС достигается при использовании общих типов integer и cardinal. Все остальные типы представляют подмножества этих двух типов. Если в выражении используются значения различных типов, то результат будет иметь тип integer.
|
|
Вещественный тип
Язык программирования Object Pascal поддерживает 7 типов данных, позволяющих работать с вещественными числами. Эти типы различаются между собой диапазоном допустимых значений и возможным количеством цифр, т.е точностью.
В табл. 7.2 перечислены вещественные типы.
Таблица 2. Вещественные типы в Delphi 7
Тип | Диапазон | Кол-во цифр | Кол-во байт |
real | 5,0*10-324..1,7*10+308 | 15—16 | |
геа148 | 2,9*10-39.. 1,7*10+38 | 11-12 | |
single | 1,5*10-45..3,4*10+38 | 7—8 | |
double | 5,0*10-324..1,7*10+308 | 15—16 | |
extended | 3,6*10-4952.. 1,1*10+4932 | 19—20 | |
comp | -2+63+1.. 2+63-1 | 19—20 | |
currency | -922337203685477.5808.. 922337203685477.5808 | 19—20 |
Наибольшая производительность центрального процессора и ОC достигается при использовании общих типов real и double. Real48 предназначен для совместимости с ранними версиями Delphi и пожирает массу времени на преобразование чисел. Тип extended позволяет производить расчеты с max точностью. Более того, арифметический сопроцессор выполняет операции с действительными числами, представленными в формате extended. Если же мы пользуемся real, double, single, то результат усекается до соответствующей точности. Но данные этого типа занимают в ОП больше всего места.