Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Форматы внутреннего представления данных

Далее описываются форматы внутреннего представления данных

Borland Pascal.

Целочисленные типы

Формат, выбираемый для представления переменной целого типа,

зависит от ее минимальной и максимальной границ:

1. Если обе границы находятся в диапазоне -128..127

(Shotrint - короткое целое), то переменная хранится, как

байт со знаком.

2. Если обе границы находятся в диапазоне 0..255 (Byte -

байтовая переменная), то переменная хранится, как байт

без знака.

3. Если обе границы находятся в диапазоне -32768..32767

(Integer - целое), то переменная хранится, как слово со

знаком.

4. Если обе границы находятся в диапазоне 0..65535 (Word -

переменная длиной в слово), то переменная хранится, как

слово.

5. В противном случае переменная хранится, как двойное сло-

во со знаком (Longint - длинное целое).

Символьный тип

Символьный тип или поддиапазон (отрезок) символьного типа

(Char) хранится, как байт без знака.

Булевский тип

Значения и переменные булевского типа Boolean хранятся как

байт, WordBool - как слово, а LongBool - как значение Longint.

При этом подразумеваются, что они могут принимать значения 0

(Falsе) или 1 (Тruе).

Перечислимый тип

Значения перечислимого типа хранятся, как байт без знака,

если нумерация не превышает 256. В противном случае они хранятся,

как слово без знака.

Типы с плавающей точкой

Типы значений с плавающей точкой Real, Single, Double,

Extended и Comp (вещественный, с одинарной точностью, с двойной

точностью, с повышенной точностью и сложный) хранятся в виде дво-

ичного представления знака (+ или -), показателя степени и знача-

щей части числа. Представляемое число имеет значение:

+/- значащая_часть Х 2^показатель_степени

где значащая часть числа представляет собой отдельный бит слева

от двоичной десятичной точки (то есть 0 <= значащая часть <= 2).

В следующей далее схеме слева расположены старшие значащие

биты, а справа - младшие значащие биты. Самое левое значение хра-

нится в самых старших адресах. Например, для значения веществен-

ного типа e сохраняется в первом байте, f - в следующих пяти бай-

тах, а s - в старшем значащем бите последнего байта.

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

Шестибайтовое (48-битовое) вещественное число (Real) подраз-

деляется на три поля:

1 39 8

----T------..-------T--------

¦ s ¦ f ¦ e ¦

L---+------..-------+---------

msb lsb msb lsb

Значение v числа определяется с помощью выражений:

if 0 < e <= 255, then v = (-1)^s * 2^(e-129)*(l.f).

if e = 0, then v = 0.

Вещественный тип не может использоваться для хранения ненор-

мализованных чисел, значений, не являющихся числом (NaN), а также

бесконечно малых и бесконечно больших значений. Ненормализованное

число при сохранении его в виде вещественного принимает нулевое

значение, а не числа, бесконечно малые и бесконечно большие зна-

чения при попытке использовать для их записи формат вещественного

числа приводят к ошибке переполнения.

Здесь и далее msb означает более значащий бит (старшие раз-

ряды), lsb - менее значащий (младшие разряды).

Соседние файлы в предмете Программирование на Pascal