Значениями логического типа BOOLEAN может быть одна из предварительно объявленных констант false (ложь) или true (истина).
Данные логического типа занимают один байт памяти. При этом значению false соответствует нулевое значение байта, а значению true соответствует любое ненулевое значение байта. Например: false всегда в машинном представлении: 00000000; true может выглядеть таким образом: 00000001 или 00010001 или 10000000.
Однако следует иметь в виду, что при выполнении операции присваивания переменной логического типа значения true, в соответствующее поле памяти всегда записывается код 00000001.
Над логическими типами возможны операции булевой алгебры - НЕ (not), ИЛИ (or), И (and), исключающее ИЛИ (xor) - последняя реализована для логического типа не во всех языках. В этих операциях операнды логического типа рассматриваются как единое целое - вне зависимости от битового состава их внутреннего представления.
Кроме того, следует помнить, что результаты логического типа получаются при сравнении данных любых типов.
В языке C данные логического типа отсутствуют, их функции выполняют данные числовых типов, чаще всего - типа int. В логических выражениях операнд любого числового типа, имеющий нулевое значение, рассматривается как "ложь", а ненулевое - как "истина". Результатами логического типа являются целые числа 0 (ложь) или 1 (истина).
Тип integer представляет собой подмножество целых чисел. Типы Integer и Cardinal рекомендуется использовать там, где это возможно, поскольку операционная система работает с ними наиболее оптимально. В таблице приведены диапазоны и необходимый размер памяти.
Тип
| Диапазон
| Формат
|
Boolean
| False..True
| 8-bit
|
Integer
| –2147483648..2147483647
| Со знаком 32-bit
|
Cardinal
| 0..4294967295
| Без знака 32-bit
|
Shortint
| –128..127
| Со знаком 8-bit
|
Smallint
| –32768..32767
| Со знаком 16-bit
|
Longint
| –2147483648..2147483647
| Со знаком 32-bit
|
Int64
| –263..263–1
| Со знаком 64-bit
|
Byte
| 0..255=$FF
| Без знака 8-bit
|
Word
| 0..65535=$FFFF
| Без знака 16-bit
|
Longword
| 0..4294967295=$FFFFFFFF
| Без знака 32-bit
|
Арифметические операции с целыми возвращают величину типа Integer, который эквивалентен 4-х байтному Longint. Операции возвращают величину типа Int64, если операнды типа Int64.
Примечание: Большинство стандартных функций усекают целые аргументы типа Int64 до 32 битов. Тем не менее, функции High, Low, Succ, Pred, Inc, Dec, IntToStrиIntToHex полностью поддерживают аргументы типа Int64. Функции Round, Trunc, StrToInt64иStrToInt64Def возвращают значения типа Int64. Несколько функций, включая Ord, совсем не воспринимают параметры типа Int64.