Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Delphi_1курс лекции / Пр 2 Типы данных.doc
Скачиваний:
49
Добавлен:
23.03.2015
Размер:
211.46 Кб
Скачать

Действительные типы данных

Действительные типы данных предназначены для хранения чисел, имеющих дробную часть. Ниже приведена таблица, в которой перечисляются эти типы для Delphi 7 и даются диапазоны их изменений.

Тип

Диапазон значений

Число значащих

разрядов

Требования

к памяти в байтах

Real48

2.9*10-39  1.7*1038

11-12

6

Real

5.0*10-324  1.7*10308

15-16

8

Single

1.5*10-45  3.4*1038

7-8

4

Double

5.0*10-324  1.7*10308

15-16

8

Extended

3.6*10-4932  1.1*104392

19-20

10

Comp

-263262

19-20

8

Currency

-922337203685477.5808 +

922337203685477.5807

19-20

8

Родовым (т.е. обеспечивающим максимальную производительность) является тип Real, который в настоящий момент эквивалентен типуDouble, но в последующих версиях это может быть изменено. В ранних версиях он использовал 6 байтов, т.е. был эквивалентен современномуReal48. Если при перекомпиляции старых кодов есть необходимость вернуться к 6-байтовому представлениюReal, компиляцию надо вести с директивой компилятора{$REALCOMPATIBILITY ON}.

Наименьшую производительность обеспечивает тип Real48, сохраняемый только для обратной совместимости с более ранними версиями языка.

Тип Extended обладает максимальной точностью, но могут возникать проблемы с его переносимостью на другие платформы.

Тип Comp является, строго говоря, большим целым, а не действительным числом, но отличается от целого, например, тем, что к нему нельзя применять функции инкремента и декремента. Этот тип оставлен только для обратной совместимости с более ранними версиями языка, поскольку его возможности перекрываются целым типомInt64.

Тип Currency используется для представления денежных величин. В памяти он хранится как масштабированное в 10000 раз 8-байтовое целое. Благодаря этому при операциях с величинами типаCurrency минимизируются ошибки округления, что очень важно для денежных расчетов. В выражениях, в которых смешаны величины типаCurrency с величинами других действительных типов, значенияCurrency автоматически умножаются или делятся на 10000.

Приведенные в таблице затраты памяти могут изменяться от версии к версии и от системы к системе. Поэтому, если требуется достоверно знать затраты памяти для того или иного типа, следует пользоваться функцией SizeOf.

Булевы типы данных

Переменные булевых типов данных представляют логические значения, например, true (истина) иfalse (ложь). Булевы типы относятся к целым порядковым типам. Ниже приведена таблица, в которой перечисляются эти типы для Delphi 7. Столь большое число одинаковых по смыслу типов связано с желанием обеспечить совместимость Delphi с другими системами. Предпочтительнее всегда использовать типBoolean, кроме обращений к каким-нибудь процедурам, явным образом требующим другой тип.

Тип

Значения

Требования к памяти в байтах

Boolean

Булева величина в один байт

1

ByteBool

Булева величина в один байт

1

WordBool

Булева величина в одно слово

2

LongBool

Булевская величина в два слова

4

Предопределенные в языке константы true и false обладают в разных булевых типах несколько разными свойствами, которые просуммированы в приведенной ниже таблице.

тип Boolean

типы ByteBool, WordBool, LongBool

false < true

false <> true

Ord(false) = 0

Ord(false) = 0

Ord(true) = 1

Ord(true) <> 0

Succ(false) = true

Succ(false) = true

Pred(true) = false

Pred( false) = true

В отличие от некоторых других языков. Object Pascal не позволяет трактовать целое значение как булеву величину. Поэтому, например, если X — целая переменная, то оператор

if x then ...

будет воспринят компилятором как синтаксическая ошибка.

Для булевых типов определены операции and(И),ог (ИЛИ),not (HE, отрицание) и хоr(исключающееИЛИ. Использование этих операций расширяет возможности по формированию сложных условий в ряде операторов.

Соседние файлы в папке _Delphi_1курс лекции