Стандартные типы данных. Двоичное представление чисел и дополнительный код.

Целые типы

Byte: 0..255 — байтовый (1 байт)

ShortInt: -128..127 — короткое целое (1 байт)

Word: 0..65535 — 16-ричное слово (2 байта)

Integer(в C, C++,…-int) — целые. Начиная с Delphi3 по умолчанию идентичен longInt – см.далее

LongInt: -2147483648..2147483647 — длинное целое (диапазон примерно

-2e9..2e9, размер 4 байта)

LongWord – 32-битные без знака (4байта)

Int64 – 64-битные со знаком (8 байт) – имеют особенности в правилах приведения типа

Вещественные типы

Real(в C - float) — вещественные, (изначально был 6 байт, 11..12 значащих цифр мантиссы): 0.0, 0.1, 1e6,2.9e-39, -1.7e38

Начиная с Delphi3 по умолчанию идентичен Double (см. далее)

Double: 5.0e-324..1.7e308 — двойная точность (8 байт, 15..16 значащих

цифр мантиссы)

Extended: 1.9e-4951..1.1e4932 — расширенная точность (10 байт, 19..20

значащих цифр мантиссы)

Булевский (логический) тип

Boolean (1 байт): величины этого типа принимают только значения true или false.Во всех C-образных языках кроме Java идентичен байтовому типу

Символьный (литерный) тип

Char (1 байт): один символ. 'A', 'b', '*', ' ', '/'. (Существует в Java, в других C-образных языках идентичен байтовому типу. В Java константы символьного типа пишутся в двойных кавычках: “A”, “b” и т.д).

Строковый тип

String (не менее 4 байт): произвольное число символов (от 0 до 2e9). 'A', 'abcd', 'мама моет раму', ' '. Работа со строками в Object PASCAL не имеет аналогов по мощности и удобству в других языках программирования

Двоичное представление целых положительных чисел

Двоичное представление целых отрицательных чисел

Двоичное представление вещественных чисел

Двоичные дроби. … Мантисса и логарифм…

2.4. Особенности работы с некоторыми типами данных

1. 64-битовые целые

Описание:

Var a:Int64;

Значения — 263 … 263 -1 - знаковые 64-битные.

Преобразование обычного числа в 64-битовое – с помощью функции Int64.

Примеры задания 64-битных статических переменных (о том, что это такое, см. :

const Num64=Int64(17);

const Num64b:Int64=17;

const Num64c=3000000000;

Вызовы осуществляются только с 64-битными числами во всех частях выражения:

a:=a+Int64(1);

2. 32-битовые без знака — Longword;

0..4294967295 (то есть чуть больше 4*109 ) — то есть то же, что Cardinal;

3. Изменения в типе Real

Был 48-битовым, теперь идентичен 64-битовому Double. Для совместимости можно использовать тип Real48 либо ставить опцию компилятору

{REALCOMPATIBILITY ON}