IEEE 754 — это повсеместно применяемый стандарт, который описывает форму отображения чисел с плавающей точкой.
Общие сведения о стандарте IEEE 754
Стандарт IEEE 754 является стандартом, предназначенным для двоичной арифметики с плавающей точкой. Этот стандарт был создан ассоциацией IEEE (Instίtute of Electrίcal and Electronίcs Engίneers) и применяется для отображения действительных чисел (чисел с плавающей точкой) в двоичном формате. IEEE 754 считается самым используемым стандартом для вычислений с плавающей точкой. Он применяется большинством микропроцессоров и логических устройств, а также программным обеспечением.
Полное наименование стандарта в ассоциации IEEE представлено следующим образом: IEEE Standard for Bίnary Floatίng-Poίnt Arίthmetic (ANSI/IEEE Std 754-1985), что переводится как, IEEE стандарт для двоичной арифметики с плавающей точкой (ANSI/IEEE Std 754-1985).
Наименование стандарта в международной электротехнической комиссии IEC определено как, IEC 60559:1989, Bίnary floatίng-point arithmetίc for mίcroprocessor systems. Что в переводе означает IEC 60559:1989 двоичная арифметика с плавающей точкой для микропроцессорных систем. IEC 559:1989 является старым обозначением стандарта.
В 2008-ом году ассоциация IEEE подготовила стандарт IEEE 754-2008, в который вошел стандарт IEEE 754-1985.
Представление чисел в стандарте IEEE 754
Следует подчеркнуть, что организация IEEE была преобразована из международной общественной инженерной организации, которой она и являлась изначально, фактически в торговую организацию. Данная организация обладает авторскими правами на публикацию стандарта IEEE754-1985. По этой причине каждый пользователь, который желает изучить оригинал стандарта, должен приобрести его за сумму порядка восьмидесяти долларов. Однако законодательство Российской Федерации позволяет в учебных целях рассматривать и изучать данный стандарт бесплатно. Стандарт IEEE 754-1985 призван определить следующие моменты:
- Правила представления нормализованных положительных и отрицательных чисел с плавающей точкой.
- Правила представления денормализованных положительных и отрицательных чисел с плавающей точкой.
- Правила представления нулевых чисел.
- Правила представления специальной величины бесконечность (Infίnity).
- Правила представления специальной величины «Не число» (NaN или NaNs).
- Правила четырех режимов округления.
Стандарт IEEE 754-1985 призван определить следующие форматы представления чисел с плавающей запятой:
- Формат, имеющий одинарную точность (sίngle-precίsion) 32 бита.
- Формат, имеющий двойную точность (double-precίsion) 64 бита.
- Формат, имеющий одинарную расширенную точность (sίngle-extended precίsion) >=43 бит. Необходимо отметить, что он используется редко.
- Формат, имеющий двойную расширенную точность (double-extended precίsion) >= 79 бит, Как правило применяют 80 бит.
Рассмотрим представление числа в нормализованном экспоненциальном виде. Допустим имеется следующее десятичное число:
156,625
Приведем данное число к нормализованному экспоненциальному формату:
Данное число имеет в своем составе следующие составные части:
- Мантиссу M=1.56625.
- Экспоненту
Когда мантисса расположена в диапазоне , то такое число должно считаться как нормализованное.
Экспонента должна представляться основанием системы счисления, которое в рассматриваемом случае равно десяти, и порядком, равным в этом случае плюс двум.
Порядок экспоненты может обладать и отрицательным значением. К примеру, это может быть число:
Далее рассмотрим представление числа в денормализованном экспоненциальном формате. Предположим имеется следующее десятичное число 156,625. Приведем данное число к денормализованному экспоненциальному виду:
Данное число имеет в своем составе следующие составные части:
- Мантиссу M=0,156625.
- Экспоненту /
Когда мантисса расположена в диапазоне , то это число должно считаться денормализованным.
Экспонента должна представляться основанием системы исчисления, которое в рассматриваемом случае равно десяти, и порядком, равным в этом случае плюс трем. Порядок экспоненты может обладать также и отрицательным значением. К примеру, это может быть число:
.
Далее рассмотрим преобразование десятичного числа в двоичное число с плавающей точкой. Эта задача может быть сведена к представлению десятичного числа с плавающей точкой, в двоичное число с плавающей точкой в экспоненциальном нормализованном виде. Для того чтобы реализовать это, следует выполнить разложение заданного числа по двоичным разрядам:
Это число в десятичной и в двоичной системе с плавающей точкой имеет следующее представление:
Далее выполним приведение полученного числа к нормализованному виду в десятичной и двоичной системе:
В итоговом результате были получены главные компоненты экспоненциального нормализованного двоичного числа, а именно:
- Мантисса M=1,0011101101.
- Экспонента exp2= +111.
Далее рассмотрим преобразование двоичного нормализованного числа в 32 битный формат IEEE 754. Главное использование в технике и программировании нашли форматы 32 и 64 бита. К примеру, в языке программирования Vίsual Basίc (VB) применяют типы данных sίngle (32 бита) и double (64 бита). А в языке Си по аналогии применяют float (32 бита) и double (64 бит). Для того чтобы отобразить число в формате sίngle-precίsion IEEE 754, следует преобразовать его в двоичный нормализованный вид. Это преобразование было описано выше.