Integer/ru

From Free Pascal wiki

Deutsch (de) English (en) suomi (fi) français (fr) italiano (it) русский (ru)

Integer является стандартным типом данных языка программирования Pascal. Он используется для определения целых чисел, в отличие от типа real, применяющегося для представления вещественных чисел, которые могут содержать десятичную точку и, возможно, экспоненту.

Размер переменных типа integer зависит от размера машинных слов на целевой платформе, для которой компилятор генерирует код (32 bit или 64 bit) и типа компилятора (16-битный, 32-битный или 64-битный). Типичные размеры типа integer

  • 16 бит (2 байта)
  • 32 бита (4 байта) или
  • 64 бита (8 байта)

На текущий момент FPC использует 32 бита (4 байта) для типа integer, независимо от того, является ли архитектура машины 32-битной или 64-битной. Это приведет к тому, что в коде ожидается одинаковый размер типа integer и указателя на него, и на машинах с 64-битной архитектурой, использующих 64-битные указатели, данный код работать не будет. Для того, что бы вы могли писать переносимый код, в модуле System FPC введены типы PtrInt и PtrUInt, являющиеся, соответственно, знаковым и беззнаковым типами данных указателей, имеющие одинаковые размеры с типом integer.

В старых версиях компиляторов тип integer был 16-битным и представлял значения от -215 до 215-1 или -32 768 .. 32 767. Аналогичный тип данных word иногда использовался для определения беззнакового целого типа (0..65 535). В таких случаях, где компилятор использовал 16-битный целый тип, 32-битные целые числа обычно выражались с помощью типов данных long или longint.

Для машин с архитектурой x86 тип integer обычно определяется как 32-битный и включает значения в диапазоне от -231 до 231-1 или -2 147 483 648 .. 2 147 483 647. Последнее значение также определено в качестве константы MAXINT. Беззнаковый 32-битный целый тип cardinal имеет значения в диапазоне от 0 до 232-1 или 0 .. 4 294 967 295.

В настоящий момент тип integer зависит только от режима компиляции ($mode), поэтому на современных 64-битных процессорах тип integer также 16-битный в режимах TP или FPC либо 32-битный в режимах ObjFPC или Delphi.

Для 64-битных вычислений FPC поддерживает 64-битный тип Int64, который может принимать значения от -263 до 263-1 или -9 223 372 036 854 775 808 ... 9 223 372 036 854 775 807.

Типы данных
Простые типы Boolean | Byte | Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word
Сложные типы Array | Class | Record | Set | String | Shortstring