Язык:
Русский
English
Целочисленные типы
В Turbo Pascal предопределено пять целочисленных типов. Каждый тип обозначает подмножество целых чисел:
Тип Диапазон Формат
ShortInt -128..127 Знаковый 8 бит
Integer -32768..32767 Знаковый 16 бит
LongInt -2147483648..2147483647 Знаковый 32 бита
Byte 0..255 Беззнаковый 8 бит
Word 0..65535 Беззнаковый 16 бит
Все целочисленные типы являются порядковыми. Максимальным значениям Integer и LongInt соответствуют константы MaxInt и MaxLongInt. Максимальные и минимальные значения других целочисленных типов можно получать, изпользуя функции Low и High.
Ада
Пакет Interfaces:
В этом пакете объявлены целочисленные типы с диапазонами, не зависимыми от компилятора и операционной среды.
Тип Диапазон Формат
Integer_8 -128..127 Знаковый 8 бит
Integer_16 -32768..32767 Знаковый 16 бит
Integer_32 -2147483648..2147483647 Знаковый 32 бита
Integer_64 -2**63 .. 2**63 - 1 Знаковый 64 бита
Unsigned_8 0..255 Беззнаковый 8 бит
Unsigned_16 0..65535 Беззнаковый 16 бит
Unsigned_32 0..4294967296 Беззнаковый 32 бита
Unsigned_64 0 .. 2**64 - 1 Беззнаковый 64 бита
Пакет Standard (подключается автоматически):
В этом пакете определены стандартные целочисленные типы. По стандарту, диапазон каждого следующего типа должен быть не уже, чем у предыдущего. Кроме того, на два из этих типов наложены явные минимальные ограничения по битности.
Тип Не уже, чем у... Обычно является...
Short_Short_Integer Integer_8
Short_Integer Integer_16
Integer Integer_16 Integer_32
Long_Integer Integer_32 Integer_32
Long_Long_Integer Integer_64
Несмотря на то, что я в правой колонке выписал битность каждого типа, использовать я рекоммендую только Integer и Long_Integer. Для всех остальных битностей предпочтительней типы Integer_x. Компилятор - это как частный сыщик. Чем больше от него недоговорок, тем меньше он будет полезен. Кто знает, какими битностями будут обладать стандартные типы на платформе Win128.
Кроме указанных типов, в Standard есть часто используемые:
Natural is Integer range 0 .. Integer'Last;
Positive is Integer range 1 .. Integer'Last;
Система типов языка Ада продумана лучше, чем в Borland Pascal. В Borland Pascal нельзя скомпилировать такую программу:
program Test_Word;
var
I : Word; { из лучших побуждений }
begin
for I := 0 to -1 do { Constant out of range }
begin
end;
end.
Индекс -1 - это обычное явление, если работать с массивами, начальный индекс которых 0. Если массив пустой, то верхняя граница цикла for (длина массива минус один) как раз и получается -1. Вместо вызова ошибки этот цикл должен просто ничего не делать. В языке Ада таких проблем не возникнет. Используйте Natural и Positive на здоровье.