nextupprevious

Next:2.1.6 Литерный тип (char)
Up:2.1 Стандартные типы данных
Previous:2.1.4 Тип целый (integer)


2.1.5 Вещественный тип (real)

В значения вещественного типа попадает лишь конечное подмножество вещественных (действительных) чисел. При этом если для целых чисел от реализации (ЭВМ и транслятора) зависит только диапазон значений, образующих тип integer, то вещественные числа, образующие тип real, имеют два ограничения: на диапазон значений и на точность представления (количество десятичных цифр в мантиссе см. ниже). Поэтому числа типа real часто называют приближенными.

digit {digit} "." {digit} ["E" ["+" | "-"] digit {digit}]

Рис. 2.1. Изображение вещественного числа

Для чисел, являющихся константами вещественного типа (рис. 2.1), используется обычная десятичная или шестнадцаеричная форма записи, однако вместо запятой для отделения целой части от дробной используется точка. Например, число 3,14 можно записать в виде 3.14.

Для записи очень больших или, наоборот, очень маленьких чисел удобно использовать форму записи вещественного числа "с плавающей запятой". В этой форме число представляется в виде произведения двух сомножителей: мантиссы (целого или дробного числа) и числа 10, которое возведено в целую степень, называемую порядком изображаемого числа. Так, число 2 500 000 можно записать, например, как произведение 2,5 и $10^6$. Изображается вещественное число в форме с плавающей запятой следующим образом: сначала выписывается (по обычным правилам) мантисса, за которой следует буква $Е$ (читается -- умножить на 10 в степени) и показатель степени. Например, $2.5Е6$ изображает число 2 500 000, а $3.2Е-7$ -- изображение числа $0.00000032$; каждое из них содержит по две значащих цифры.

Предполагается, что для хранения вещественных чисел в памяти ВМ используется представление с плавающей точкой, но с основанием не десять, а два. Каждое вещественное число $x$ типа Real кодируется в виде $m*2^e$ с помощью двух двоичных целых чисел: порядка $e$ и мантиссы $m$, каждое из которых содержит ограниченное число двоичных цифр, т.е. $\mid e \mid < E$ и $\mid m \mid < M$, где $E$ и $M$ -- константы, характеризующие представление и зависящие от реализации.

Поскольку при таком подходе для любого заданного вещественного числа $x$ можно найти много различных пар $e$ и $m$, для представления вещественных чисел в пямяти ВПМ используется так называемая нормализованная форма, в которой $M/2\leq \mid m \mid < M$.

Таким образом, каждое значение типа real представляет целый отрезок оси вещественных чисел, причем плотность точек на оси вещественных чисел, являющихся значениями вещественного типа real, экпоненциально уменьшается с увеличением $\mid x\mid$. Например, интервал от 1/2 до 1 содержит столько же элементов из real, что и интервал от $2^{15}=32 768$ до $2^{16}=65 536$.

Для вещественных значений определены унарные операции: - (обращение знака) и + (тождественная операция), а также бинарные операции: $+$ (сложение), $-$ (вычитание), $*$ (умножение) и $/$ (деление).

Следует иметь в виду, что арифметические операции, применимые к значениям типа real, выполняются неточно (с округлением результата до ближайщего числа из real) и тем самым отличаются от соответствующих математических операций. Здесь (так же как и для типа Integer) возможно переполнение -- выход результата за границы диапазона представимых чисел. Помимо этого возникает ряд эффектов, связанных с округлением -- например, при вычитании двух почти равных значений результатом является нулевое значение (это явление называется сокращением или потерей значимости).
 

Next:2.1.6 Литерный тип (char)
Up:2.1 Стандартные типы данных
Previous:2.1.4 Тип целый (integer)



© В.Н. Касьянов, Е.В.Касьянова, 2004