ГОСТ Р ИСО/МЭК 8825-1-2003
8.5.5.2 Биты с 6 по 5 первого октета содержимого должны кодировать значение основания В' следующим образом:
Биты с 6 по 5 Основание
00 основание 2
01 основание 8
10 основание 16
11 зарезервировано для последующих
редакций настоящего стандарта.
8.5.5.3 Биты с 4 по 3 первого октета содержимого должны кодировать значение двоичного масштабного коэффициента F как двоичное целое число без знака.
8.5.5.4 Биты со 2 по 1 первого октета содержимого должны кодировать формат экспоненты следующим образом: если биты со 2 по 1 равны:
а) 00, то второй октет содержимого кодирует значение экспоненты в виде дополнительного кода двоичного числа;
б) 01, то второй и третий октеты содержимого кодируют значение экспоненты в виде дополнительного кода двоичного числа;
в) 10, то второй, третий и четвертый октеты содержимого кодируют значение экспоненты в виде дополнительного кода двоичного числа;
г) 11, то второй октет содержимого кодирует (как двоичное число без знака) число октетов X, используемых для кодирования значения экспоненты, а октеты содержимого с третьего по (X + 3)-й включительно кодируют значение экспоненты в виде дополнительного кода двоичного числа; значение X должно быть не меньше единицы; первые девять битов переданной экспоненты не все должны быть нулевыми или единичными.
8.5.5.5 Остающиеся октеты содержимого кодируют значение целого числа N (см. 8.5.5) в виде двоичного числа без знака.
Примечания
1 Для неканонических BER не требуется нормализация мантиссы с «плавающей» точкой. Это позволяет реализатору передавать октеты, содержащие мантиссу, без выполнения функций сдвига мантиссы в памяти. В канонических и отличительных правилах кодирования нормализация определена, и мантисса (если она не 0) должна сдвигаться до тех пор, пока наименьший значащий бит не станет равным 1.
2 Это представление действительных чисел сильно отличается от форматов, обычно используемых в аппаратуре с «плавающей» точкой, но оно предназначено для легкого преобразования в такие форматы и из таких форматов (см. приложение С).
8.5.6 Когда используется десятичное кодирование (биты с 8 по 7 = 00), все октеты содержимого после первого образуют поле, в смысле ИСО 6093, выбранной отправителем длины, закодированное в соответствии с ИСО 6093. Выбор представления числа по ИСО 6093 определяется битами с 6 по 1 первого октета содержимого следующим образом:
Биты с 6 по 1 000001 000010 000011
Представление числа ИСО 6093, формат NR1 ИСО 6093, формат NR2 ИСО 6093, формат NR3
Остальные значения битов с 6 по 1 зарезервированы для настоящего стандарта.
Не должны использоваться масштабные коэффициенты, определенные в сопровождающей документации (см. ИСО 6093).
Примечания
1 Рекомендации ИСО 6093 относительно использования, по крайней мере, одной цифры слева от десятичного знака сохраняются и в настоящем стандарте, но не являются обязательными.
2 Использование нормированной формы (см. ИСО 6093) не существенно и остается на усмотрение отправителя.
8.5.7 Когда должны быть закодированы «SpecialRealValues» (биты с 8 по 7 = 01), то должен быть только один октет содержимого со следующими значениями:
01000000 значение равно PLUS-INFINITY;
01000001 значение равно MINUS-INFINITY.
Все другие значения, имеющие биты 8 и 7, равные 0 и 1 соответственно, зарезервированы для дополнений к настоящему стандарту.