ГОСТ Р 53556.11—2014
6.9.3.3.2 Реконструкция данных с плавающей точкой (когда acf_manfesa[c] не равно 0)
Усеченные целочисленные значения преобразовываются в 32-разрядные данные с плавающей
точкой Р[с][л] согласно определению 32-битового формата с плавающей точкой IEEE с нормализацией
с точки зрения максимального целочисленного значения (223).
F[c][n] = (float) (truncatedJntegor_volue)‘2 23.
Полем экспоненты F [с] [л] является shift_valuo (с], если shift_amp [с] равно 1.
Если целое число является «0», кодированные данные с плавающей точкой используются как для
окончательного выхода. Иначе восстановленное значение различия мантиссы 0(с][л] добавляется к
мантиссе данных с плавающей точкой Е[с)[л]. которая преобразовывается из целочисленного значения и
умножается на общий множитель.
6.9.3.3.3 Умножение на общий сомножитель
После преобразования общий множитель А восстанавливается из acf_mantissa [с] и умножается
на Р(с][л]. а результат устанавливается в Я1с](л]. Вычислительная процедура умножения имеет следую
щий вид.
Шаг 1: Установка бита знака:
Знак результата является таким же как знак Я(с][л].
Шаг 2: Умножение мантиссы:
(acf_mantissa [с] | 0x0800000) умножается на (биты мантиссы F{c][n] | 0*0800000) в 64-битовом
целочисленном регистре.
Шаг 3: Нормализация:
Результат 64-битового целочисленного умножения нормализуется до точности 23 бита.
Поскольку 1.0 ^ (acf_mantissa [с] 10*0800000) *2’23 (часть мантиссы F{c] (л) 10*0800000) *2"23<2.0,
результат умножения находится в диапазоне (1. 4).
Следовательно, может понадобиться нормализация путем смещения на один бит вправо и при
ращения экспоненты.
Шаг 4: Округление;
Режим округления «округление до ближайшего, до четного, когда привязка» применяется к окру
глению нормализованной мантиссы результата.
6.9.3.3.4 Добавление значения различия мантиссы
После умножения восстановленное значение различия мантиссы 0[с](л] добавляется к данным с
плавающей точкой Р[с][л], и результат устанавливается в Р1с][л]. Вычислительная процедура дополне
ния следующая.
Шаг 1; Добавление мантиссы:
(0(с][л]). добавляется к (биты мантиссы Р{с][л] | 0*0800000) в 32-разрядном целочисленном реги
стре.
Шаг 2: Нормализация:
Результат 32-битового целочисленного дополнения нормализуется до 23-битовой точности.
Поскольку (D(c](n)) *2~23 <1.0 и 1.0 S (часть мантиссы Р[с][л] | 0*0800000) *2 23 <2.0. результат
умножения находится в диапазоне (1, 3).
Следовательно, может понадобиться нормализация смещением на один бит вправо и наращива
нием экспоненты.
Шаг 4: Усечение:
Округление для этого дополнения не требуется, потому что всякий раз. когда происходит смеще
ние. LSB получающейся мантиссы равняется 0.
64