Narod.ru
Narod.ruГлавная
Тип данных
Программа может
оперировать данными различных типов: целыми и дробными числами, символами,
строками символов, логическими величинами.
Целый тип
Язык Delphi
поддерживает семь целых типов данных: shortint, smailint, Longint, Int64, Byte,
word и Longword, описание которых приведено в табл. 1.1.
Таблица
1.1. Целые типы
Тип |
Диапазон |
Формат |
||
Shortint |
-128-127 |
8
битов |
||
Smallint |
-32 768 — 32
767 |
16
битов |
||
Longint |
-2 147 483 648 — 2 147 483
647 |
32
бита |
||
Int64 |
-263—
263 — 1 |
64
бита |
||
Byte |
0-255 |
8 битов,
беззнаковый |
||
Word |
0-65
535 |
16 битов,
беззнаковый |
||
Longword |
0 — 4 294 967
295 |
32 бита,
беззнаковый |
||
Object Pascal поддерживает и наиболее универсальный целый тип — Integer, который Эквивалентен Longint.
Вещественный тип
Язык Delphi
поддерживает шесть вещественных типов: Reai48, single, Double, Extended, comp,
Currency. Типы различаются между собой диапазо-ном допустимых значений,
количеством значащих цифр и количеством байтов, необходимых для хранения данных
в памяти компьютера (табл. 1.2).
Таблица
1.2. Вещественные (дробные) типы
Тип |
Диапазон |
Значащих
цифр |
Байтов |
||
Real48 |
2. |
11-12 |
06 |
||
Single |
1.5 x
10-45-3.4х 1038 |
7-8 |
04 |
||
Double |
5. 0x10-324
-1.7×10308 |
15-16 |
08 |
||
Extended |
3.6×10-4951
-1.1 х104932 |
19-20 |
10 |
||
Comp |
263+1 —
263-1 |
19-20 |
08 |
||
Currency |
-922 337 203 685 477. 5808
—922 337 203 685 477.5807 |
19-20 |
08 |
||
Язык Delphi поддерживает и наиболее универсальный вещественный тип — Real, который э квивалентен Double.
Символьный тип
Язык Delphi
поддерживает два символьных типа: Ansichar и Widechar:
- тип Ansichar — это
символы в кодировке ANSI, которым соответствуют числа в диапазоне от 0 до
255;
- тип widechar — это
символы в кодировке Unicode, им соответствуют числа от 0 до 65
535.
Object Pascal поддерживает и наиболее универсальный символьный тип — Char, который эквивалентен Ansichar.
Строковый тип
Язык Delphi
поддерживает три строковых типа: shortstring, Longstring
- WideString:
- тип shortstring
представляет собой статически размещаемые в памяти компьютера строки длиной от 0
до 255 символов;
- тип Longstring
представляет собой динамически размещаемые в памяти строки, длина которых
ограничена только объемом свободной памяти;
- тип WideString
представляет собой динамически размещаемые в памяти строки, длина которых
ограничена только объемом свободной памяти. Каждый символ строки типа WideString
является Unicode-символом.
В языке Delphi
для обозначения строкового типа допускается использование идентификатора string.
Тип string эквивалентен типу shortstring.
В языке Delphi для обозначения строкового типа допускается использование идентификатора string. Тип string эквивалентен типу shortstring.
Логический тип
Логическая величина может принимать одно из двух значений True (истина) или False (ложь). В языке Delphi логические величины относят к типу Boolean.
delphi — Разница между LongInt и Integer, LongWord и Cardinal
Краткая версия
| Тип | 16-битная платформа | 32-битная платформа | 64-битная платформа | |---------------------------|-----------------|---------------- | ------------------| | Целое | 16-битный подписанный | 32-битный подписанный | "общий тип" | Кардинал | 16-битный без знака | 32-битный без знака | "общий тип" | Лонгинт | 32-битный подписанный | 32-битный подписанный | 64-битная подпись | "основной тип" | Длинное слово | н/д | 32-битный без знака | 64-битный без знака | "основной тип" | Int64 | н/д | 64-битная подпись | 64-битная подпись | "основной тип" | UInt64 | н/д | 64-битный без знака | 64-битный без знака | "основной тип" | Int32 | н/д | 32-битный подписанный | | Уинт32 | н/д | 32-битный без знака | | РоднойИнт | н/д | 32-битный подписанный | 64-битная подпись | | НативУинт | н/д | 32-битный без знака | 64-битный без знака | | Фиксированное значение | н/д | 32-битный подписанный | | ФиксированныйUInt | н/д | 32-битный без знака |
Длинный ответ
Мы все знаем, что они должны были сделать:
| Тип | 16-битная платформа | 32-битная платформа | 64-битная платформа | |---------------------------|-----------------|---------------- | ------------------| | Целое | 16-битный подписанный | 32-битный подписанный | 64-битная подпись | "общий тип" | Кардинал | 16-битный без знака | 32-битный без знака | 64-битный без знака | "общий тип" | Малый Целый | 16-битный подписанный | "основной тип" | Слово | 16-битный без знака | "основной тип" | Лонгинт | 32-битный подписанный | "основной тип" | Длинное слово | 32-битный без знака | "основной тип" | Int64 | 64-битная подпись | "основной тип" | UInt64 | 64-битный без знака | "основной тип"
- основные типы не изменяются
- универсальных типов (псевдонимов) do
Но они этого не сделали. Так что мы там, где мы есть.
Предположительно Int32
всегда будет 32-битным целым числом со знаком ; но гарантии были нарушены раньше.
Дополнительное чтение
- Что нового в Delphi и C++Builder XE8
- Delphi 1 для Windows — Руководство пользователя
Из справки Delphi 5:
Целочисленные типы
Целочисленный тип представляет собой подмножество целых чисел. Общие целочисленные типы: Integer и Cardinal ; используйте их, когда это возможно, поскольку они обеспечивают наилучшую производительность базового ЦП и операционной системы. В таблице ниже указаны их диапазоны и форматы хранения для текущего 32-битного компилятора Object Pascal.
Тип Диапазон Формат -------- -------- --------------- Целое число –2147483648..2147483647 32-битное со знаком Кардинал 0..4294967295 беззнаковый 32-битныйОсновные целочисленные типы включают Shortint , Smallint , Longint , Int64 , Byte , Word и Longword . 63–1 подписанный 64-битный Байт 0..255 беззнаковый 8-битный Слово 0..65535 беззнаковое 16-битное Длинное слово 0..4294967295 беззнаковый 32-битный
Как правило, арифметические операции над целыми числами возвращают значение типа Integer , что в текущей реализации эквивалентно 32-битному типу Longint . Операции возвращают значение типа Int64 только при выполнении над операндом Int64 .
Обратите внимание, что «в текущей реализации эквивалентен Longint» . Идея тогда заключалась в том, что Integer
изменится; мало ли они поняли, что это было Longint
что бы изменить.
Из Руководства пользователя Delphi 1:
Типы данных
В язык Object Pascal встроено несколько типов данных. Вы можете создавать переменные любого из этих предопределенных типов. В следующей таблице перечислены предопределенные типы данных:
Таблица 5. 1 Предопределенные типы данных Object Pascal
- Целое число : Числа без дробной части в диапазоне от –32768 до 32767. Требуется два байта памяти.
- Shortint : Числа без дробной части, в диапазоне от –128 до 127. Требуется только один байт памяти.
- Longint : Числа без дробной части, в диапазоне от –2147483647 до 2147483647. Требуется четыре байта памяти.
- Байт : Числа без дробной части, в диапазоне от 0 до 255. Требуется один байт памяти.
- Word : Числа без дробной части, в диапазоне от 0 до 65535. Требуется два байта памяти
Из справки Delphi XE6:
целочисленных типов ================
Целочисленный тип представляет собой подмножество целых чисел.
Целочисленные типы могут быть платформенно-зависимыми и платформенно-независимыми.
Целочисленные типы, зависящие от платформы
Целочисленные типы, зависящие от платформы, преобразуются в соответствии с разрядностью текущей платформы компилятора. 63-1 64-бит со знаком на 64-битных платформах Int64 Нативуинт 0..42964-1 Беззнаковый 64-бит на 64-битных платформах UInt64
Независимые от платформы целочисленные типы
Целочисленные типы, не зависящие от платформы, всегда имеют одинаковый размер, независимо от используемой платформы. Platform-independent integer types include ShortInt , SmallInt , LongInt , Integer , Int64 , Byte , Word , LongWord , Cardinal , and UInt64 964-1 Беззнаковый 64-битный
Обратите внимание, как Integer
и Cardinal
были задокументированы как зависящие от платформы ? Также обратите внимание, как LongInt
и LongWord
были задокументированы как независимые от платформы ?
Dr.
Bob об улучшениях языка Delphi Dr.Bob об улучшениях языка DelphiКлиника Делфи | Ворота C++Builder | Обучение и консультации | Delphi Notes Блог | Интернет-магазин доктора Боба |
|