Машинная арифметика с плавающей точкой - Представление и хранение информациии в ЭВМ

Число с плавающей точкой:

X=±Mx-S±px

Здесь: M - мантисса; S - порядок.

0.314 101 0.0314 102

Машинные числа. Машинными называются числа, допускающие точное представление во внутреннем формате хранения числовых значений.

Форматы хранения чисел с плавающей точкой

Институт инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers, IEEE) разработал международные стандарты, которые описывают представление чисел с плавающей запятой:

    - стандарт ANSI/IEEE 754:1985 определяет требования к реализации двоичной плавающей арифметики; - ANSI/IEEE 854:1987 обобщает прежний стандарт, допуская дополнительно, кроме двоичного, десятичное основание представлений мантиссы и экспоненты и произвольную длину машинного слова.

Позднее требования этих стандартов были отражены в стандарте IEC 60559:1989.

Стандарты, кроме форматов представления, описывают также основные арифметические действия, операции вычисления остатка от деления, квадратного корня, преобразования из двоичного представления в десятичное и наоборот.

В большинстве современных платформ, таких как Intel и большинстве RISC-систем аппаратно реализована плавающая арифметика, соответствующая стандарту IEC 60559.

Стандарты IEEE определяют следующие форматы хранения вещественных чисел:

    - с простой точностью (соответствует типам REAL*4 в языке Фортран и float в C); - с двойной точностью (соответствует типам REAL*8 в языке Фортран и double в C); - с расширенной точностью (условно говоря, соответствует типам REAL*10 и более в языке Фортран и long double в C).

Число в представлении с простой точностью занимает 32 двоичных разряда: 23 разряда занимает мантисса и 8 разрядов отведено для порядка. Старший разряд является знаковым.

Нормализованная форма чисел с плавающей точкой

Числа с плавающей точкой хранятся в нормализованном виде:

    - в нормализованной форме точка расположена перед первой значащей, то есть, отличной от нуля, цифрой мантиссы; - старший бит мантиссы всегда равен единице, он явным образом не указывается, а свободная позиция отводится под знак мантиссы. Таким образом при фиксированном количестве разрядов можно записать наибольшее количество значащих цифр и обеспечить наибольшую точность представления вещественного числа.

Мантисса нормализованного числа, если она не равна нулю, принадлежит диапазону (0.5, 1), в общем случае:

Порядок задается в формате с избытком (смещением) - истинное значение порядка увеличивается на 127, сумма всегда положительна. Фактическое значение порядка находится в промежутке от -126 до +127. Основанием является 2.

Младший бит мантиссы в формате с простой точностью представляет значение 2-24 (примерно 10-7), что соответствует 7 значащим цифрам десятичного представления.

Значащие цифры числа допускают точное представление. Следующие значения имеют одинаковое (равное четырем) число значащих цифр: 3.142, 0.003142, 3.142e3.

В формате с простой точностью не имеет смысла хранить значения, содержащие более 8 десятичных разрядов мантиссы. Минимальное значение порядка -126 определяет минимальное по модулю, отличное от нуля, машинное число (около 1.17x10-38). Максимальное значение порядка составляет 127, что приблизительно соответствует значению 1.70x1038.

Число в представлении с двойной точностью занимает 64 двоичных разряда, из которых 52 разряда отводятся мантиссе и 11 разрядов порядку.

Для чисел с двойной точностью в десятичной системе диапазон значений составляет: от 2.22x10-308 до 1.79x10308.

Количество значащих цифр и пределы изменения в этом случае больше, чем в формате с простой точностью (до 16 значащих цифр).

Расширенный формат используется для повышения точности промежуточных результатов вычислений.

Исходные данные для вычислений задаются с простой или двойной точностью, промежуточные вычисления выполняются с расширенной точностью, а окончательный результат формируется преобразованием к простой или двойной точности.

Расширенный формат используется и для вычисления значений математических функций. Диапазон значений от 3.4x10-4932 до 1.2x104932.

Особые значения.

Порядок 255 при нулевой мантиссе представляет значение "бесконечность". Порядок 255 при ненулевой мантиссе представляет значение, которое обозначается символьной строкой NaN (Not-a-Number, не число). Оно возникает при выполнении недопустимой операции вроде деления нулевого значения на нулевое или извлечения квадратного корня из отрицательного числа.

Если порядок равен нулю, а мантисса отлична от нуля, число называется анормальным (субнормальным, денормализованным). Оно может быть использовано для представления положительного и отрицательного нулей, а также значений, меньших минимального нормализованного числа. Субнормальные числа заполняют щель между нулем и наименьшим ненулевым нормализованным значением. Для чисел с простой точностью минимальное субнормальное значение равно 1.4x10-45, для чисел с двойной точностью 4.9x10-324, а для чисел с расширенной точностью не более 3.6x10-4951.

Положительный и отрицательный нули отличаются с точки зрения операции деления на ноль, которая в первом случае дает особое значение "положительная бесконечность", а во втором - "отрицательная бесконечность".

Существуют также форматы IBM, CRAY и некоторые другие. Они не получили широкого распространения.

Похожие статьи




Машинная арифметика с плавающей точкой - Представление и хранение информациии в ЭВМ

Предыдущая | Следующая