- •Ieee 754 - стандарт двоичной арифметики с плавающей точкой
- •§1. Название стандарта.
- •§2.Краткое описание стандарта.
- •§3. Основные понятия в представлении чисел с плавающей точкой.
- •3.1 Представление числа в нормализованном экспоненциальном виде.
- •3.2 Представление числа в денормализованном экспоненциальном виде.
- •3.3 Преобразование десятичного числа в двоичное число с плавающей точкой.
- •4.2 Преобразования числа формата 32 бит ieee 754 в десятичное число
- •§4. Описание преобразования чисел по стандарту ieee 754.
- •4.1 Преобразование двоичного нормализованного числа в 32 битный формат ieee 754
- •§5. Формальное представление чисел в стандарте ieee 754 для любого формата точности.
- •Формула вычисления десятичных чисел с плавающей точкой, из чисел представленных в стандарте ieee754:
- •§6. Исключительные числа стандарта ieee 754
- •Поэтому из стандарта сделаны исключения и формула №1 не применяется в следующих случаях:
- •Формула расчета денормализованных чисел:
- •§7. Сведенья по числам одинарной и двойной точности представленных в стандарте ieee 754.
- •7.1 Вычисление границ диапазона для чисел одинарной точности ieee 754
- •7.2 Полный диапазон чисел одинарной точности (32 бит) по стандарту ieee754
- •7.3 Общие сведенья для чисел одинарной и двойной точности стандарта ieee 754.
- •§8. Округление чисел в стандарте ieee 754.
- •§9. Заключение.
§4. Описание преобразования чисел по стандарту ieee 754.
4.1 Преобразование двоичного нормализованного числа в 32 битный формат ieee 754
Основное применение в технике и программирование получили форматы 32 и 64 бита. Например, в VB используют типы данных single (32 бита) и double (64 бита). Рассмотрим преобразование двоичного числа 10011011,101 в формат single-precision (32 бита) стандарта IEEE 754. Остальные форматы представления чисел в IEEE 754 является увеличенной копией single-precision.
Чтобы представить число в формате single-precision IEEE 754 необходимо привести его к двоичному нормализованному виду. В §3 мы проделали это преобразование над числом 155,625. Теперь рассмотрим, как двоичное нормализованное число преобразуется к 32 битному формату IEEE 754.
Описание преобразования в 32 битный формат IEEE 754:
Число может быть + или - . Поэтому отводится 1 бит для обозначения знака числа: 0-положительное 1-отрицательное Этот самый старший бит в 32 битной последовательности .
Далее пойдут биты экспоненты, для этого выделяют 1 байт (8 бит). Экспонента может быть, как и число, со знаком + или -. Для определения знака экспоненты, чтобы не вводить ещё один бит знака, добавляют смещение к экспоненте в половину байта +127(0111 1111). То есть, если наша экспоната = +7 (+111 в двоичной), то смещенная экспонента = 7+127=134. А если бы, наша экспонента была -7 , то смещенная экспонета=127-7 =120. Смещенную экспоненту записывают в отведенные 8 бит. При этом, когда нам будет нужно получить экспоненту двоичного числа, мы просто отнимем 127 от этого байта.
Оставшиеся 23 бита отводят для мантиссы. Но, у нормализованной двоичной мантиссы первый бит всегда равен 1, так как число лежит в диапазоне 1<=M<2. Нет смыла, записывать единицу в отведенные 23 бита, поэтому в отведенные 23 бита записывают остаток от мантиссы.
В таблице представлено десятичное число 155,625 в 32-х битном формате IEEE754: |
|||
1 бит |
8 бит |
23 бит |
IEEE 754 |
0 |
1000 0110 |
001 1011 1010 0000 0000 0000 |
431BA000 (hex) |
0(dec) |
134(dec) |
1810432(dec) |
|
знак числа |
смещенная экспонента |
остаток от мантиссы |
число 155,625 в формате IEEE754 |
В результате десятичное число 155,625 представленное в IEEE 754 c одинарной точностью равно 431BA000 (hex).
4.2 Преобразования числа формата 32 бит ieee 754 в десятичное число
Чтобы записать число в стандарте IEEE 754 или восстановить его, необходимо знать три параметра:
S- бит знака (31-й бит)
E- смещенная экспонента (30-23 биты)
M - остаток от мантиссы (22-0 биты)
Это целые числа которые записанные в числе IEEE 754 в двоичном виде.
Приведём формулу для получения десятичного числа из числа IEEE754 одинарной точности:
где F - десятичное число
Проверяем наш пример: F =(-1)0∙2(134-127)∙(1+ 1810432 / 223)= 27∙(1+0,2158203125)=128∙1,2158203125=155,625
Вывод этой формулы приводить не буду, всё видно и так. Поясню только (1+ M/223) - это мантисса, единица в этой формуле- это та единица, которую мы выбросили из 23 бит, а остаток мантиссы в десятичном виде находим отношением двух целых чисел - остатка мантиссы к целому.
