ГОСТ Р ИСО/МЭК 8825-93 Информационная технология. Взаимосвязь открытых систем. Спецификация базовых правил кодирования для абстрактно-синтаксической нотации версии один (АСН. 1)

Обложка ГОСТ Р ИСО/МЭК 8825-93 Информационная технология. Взаимосвязь открытых систем. Спецификация базовых правил кодирования для абстрактно-синтаксической нотации версии один (АСН. 1)
Обозначение
ГОСТ Р ИСО/МЭК 8825-93
Наименование
Информационная технология. Взаимосвязь открытых систем. Спецификация базовых правил кодирования для абстрактно-синтаксической нотации версии один (АСН. 1)
Статус
Действует
Дата введения
1994.06.30
Дата отмены
-
Заменен на
-
Код ОКС
35.100.60

ГОСТ Р ИСО МЭК 8825-$3

государственный стандарт российской федерации

ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ

ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ

СПЕЦИФИКАЦИЯ БАЗОВЫХ ПРАВИЛ КОДИРОВАНИЯ ДЛЯ АБСТРАКТНО-СИНТАКСИЧЕСКОЙ НОТАЦИИ

ВЕРСИИ ОДИН (АСН. 1)

БЗ 11—92/1110

ГОССТАНДАРТ РОССИИ

М О С К 8 U

ГОСТ Р ИСО МЭК 8825-93

Предисловие

I РАЗРАБОТАН И ВНЕСЕН Техническим комитетом по стандартизации (ТК 22) «Информационная технология»

2 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 20.12.93 № 258

Стандарт подготовлен на основе применения аутентичного текста международного стандарта ИСО/МЭК 8825—90 «Информационная технология. Взаимосвязь открытых систем. Спецификация базовых правил кодирования для абстрактно-синтаксической нотации версии один (АСИ. 1)

3 ВВЕДЕН ВПЕРВЫЕ

© Издательство стандартов. 1994

Настоящий стандарт не может быть полностью или частично воспроизведем, тиражирован и распространен в качестве официального издания без разрешения Госстандарта России

I

ГОСТ Р ИСО/МЭК 8825-98

СОДЕРЖАНИЕ

I Область применения........... . I

2 Норма! я иные ссылки ........... . . 1

3 Определения ......... .

4 Сокращения и обозначения.........- .

5 Соответствие требованиям стандарта...... . .

6 Общие правила кодирования...........

6.1 Структура кодового представления......•. . .

6 2 Октеты идентификатора ............

63 Октеты длины .............

6 4 Октеты содержимого.............

6 5 Октеты признака конца содержимого........

7 Кодовое представление булевс кого значения......

8 Кодовое представление целочисленного значения......

9 Кодовое представлен не значения перечислительною типа

10 Кодовое представление значения «действительное число»

11 Кодовое представление значения «строки бит» ... . .

12 Кодовое представление значения «строка октетов»

13 Кодовое иродставлсние .вырожденною значения.....

Ы КоДОбОС представление значения «поспеловательиоегь»

15 Кодовое представление значения «последовательность из»

16 Кодовое представление значения «множество» ......

>7 Кодовое представление значения «множество из*.....

18 Кодовое представление выборочного значения......

19 Кодовое представление селективного значения ......

20 Кодовое представление тегированного значения .....

21 Кодовое представление значения произвольного типа ....

22 Ко доп ос предегтл олеине .нючеиия «»лынгнфикатор объекта»

23 Кодовое представление значений «строка знаков» .....

24 Кодовые представлении значений общеупотребительных типов ДСП. 1

25 Использование при определении синтаксиса передачи ....

Приложение А Пример кодового представлении.....

A.I Описание структуры записи с помощью АСН. 1

А.2 Описание значения записи с помощью АСН. I......

А.З Кодовое представление апого значения записи......

Приложение В Перечень иржноенных значений «идентификатор объектах ..............26

Приложение С Пояснен не к кодовому представлению значения «действи

тельное число»......... . . 27

2 Ь i S? ci !i о а: х -J -j -I г> ■?. сп о« —. гз •- ^ ^ а «. ос ч х. «• >. ы &» ъэ

II

ГОСТ Р ИСО/МЭК 8825-93:

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Информационная технология

ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ

Спецификация базовых правил кодирования для айсграктноеинтакснчсской нотации версии один (ЛСН. 1)

information technology. Open Systems Interconnection. Specification of

Basic Encoding Rules lor Abstract Syntax Notation One (ASM 1)

Дата введения 1994—07—01

1 ОБЛАСТЬ ПРИМЕНЕНИЯ

Настоящий стандарт определяет набор базовых правил кодирования, который может служить основой для определения синтаксиса передачи для значений, определенных с помощью нотации ГОСТ Р ИСО/МЭК 53824. Базовые правила кодирования применяют также при декодировании полученного сих помощью синтаксиса передачи для определения значений переданных данных.

Описываемые базовые правила кодирования используют во время взаимодействия компонентами, предоставляющими услуги уровня представления, когда это требуется контекстам представления.

2 НОРМАТИВНЫЕ ССЫЛКИ

ГОСТ 2-8906—91 Системы обработки информации. Взаимосвязь открытых систем. Базовая эталонная модель

ГОСТ 34.972—9! Системы обработки информации. Взаимосвязь открытых систем. Спецификация протокола уровня представления для режима с установлением*соединения

ГОСТ Р ИСО/МЭК 8824—93 Информационная технология. Взаимосвязь открытых систем. Спецификация абстрактно-синтаксической нотации версии один (ЛСН. ))

ИСО 2022—86 Обработка информации. Наборы 7- н 8-битных кодированных знаков. Методы расширения кода*

ИСО 2375—85 Обработка информации. Процедура регистрации Z^c-последовательностей*

ИСО 6093—85 Обработка информации. Представление числовых значений в- строках знаков при обмене информацией*

* До прямого пряменення данного документа в качестве государственного стандарта распространение его осуществляет секретариат ТК 22 «Информаомон-язя технология».

Издание официальное

ГОСТ Р ИСО.МЭК 8825-93-

Рекомендации X. 209 (1988) Спецификация базовых правил кодирования для абстрактно-синтаксической нотации версии один (АСН. 1)*

3 ОПРЕДЕЛЕНИЯ

В настоящем стандарте применяют определения ГОСТ 34.973.

3.1 Динамическое соответствие — требование к реализации следовать правилам внешнего функционирования, предписываемым настоящим стандартом.

3.2 Статическое соответствие — требование к реализации обеспечивать допустимый поднабор функциональных возможностей из множества функциональных возможностей, описанных в настоящем с ганда рте.

3.3 Значение данных — информация, определенная как значение некоторого типа; тип и значение определены с помощью ДСП. 1.

3 4 Кодовое представление (некоторого значения данных) — полная последовательность октетов, используемая для представления значения данных.

Примечание — В пекаюрыл р^хиж-идацияд МККП ИСПОЛЬЗуюТ термин «олсмсит данных» для этой последоиатсльмости октетов, однако его нс применяют з настоящем стандарт*.-, поскольку о международных стандартах ИСО этот термин используют в смысле «значение данных».

3.5 Октеты идентификатора — часть кодового представления значения, данных, используемая для идентификации типа, к которому относится значение данных.

3.6 Октеты длины — часть кодового представления значения данных, используемая для нахождения его конца и следующая за октетами идентификатора.

3.7. Октеты признака конца содержимого — оконечная часть кодового представления, используемая для нахождения его конца.

Примечание — Нс все кодовые представления тусвуют наличия октетов признака конца еодгржнмого.

- 3.8 Октеты содержимого — часть кодового представления значения данных, которая представляет данное значение н позволяет отличить его от других значений того же типа.

3.9 Простое кодовое представление — кодовое представление значения данных, в котором октеты содержимого непосредственно представляют это значение.

* Данный документ можно получить по запросу во ВНИИКИ.

ГОСТ Р ИСО МЭК 8825-93

3.10 Составное кодовое представление — кодовое представление значения данных, в котором октеты содержимого являются полным кодовым представлением: одного или нескольких других значений данных.

3.11 Отправитель — компонент реализации, кодирующий значение данных для передачи.

3.12 Получатель — компонент реализации, декодирующий октеты, сформированные отправителем, чтобы получить значение данных, которое было закодировано.

4 СОКРАЩЕНИЯ И ОБОЗНАЧЕНИЯ

4.1 Сокращения

АСН. I — абстрактно-синтаксическая нотация версии один

4.2 Обозначения

4 2.1 Настоящий стандарт содержит ссылки на обозначения, определенные в ГОСТ 34- 973.

4 2.2 В настоящем стандарте при определении значения каждого октета используют термины «старший бит» и «младший бит».

Примечание — В спецификациях по нижним уровням используют ту же терминологии» при определении порядка передачи бит по последовательной линии связи или при распределении бит по параллельным каналам.

4.2.3 Исключительно для целен настоящего стандарта биты октета нумеруют с 8 до I, причем бит 8 — «старший бит», а бит I — «младший бит».

5 СООТВЕТСТВИЕ ТРЕБОВАНИЯМ СТАНДАРТА

5.1 Требование динамического соответствия определяются разделами 6—21.

5.2 Требования статического соответствия определяются теми документами, которые описывают применение базовых правил кодирования.

5.3 Настоящим стандартом допускаются различные варианты кодового представления одного и того же значения по выбору отправителя. Получатели, удовлетворяющие требованиям настоящего стандарта, должны обеспечивать поддержку всех вариантов.

Примечание — Примеры вышеупомянутых вариантов кодовых представлений приведены в 6.3 2ft и таблице 2.

3

ГОСТ Р ИСО/МЭК 8825-93

6 ОБЩИЕ ПРАВИЛА КОДИРОВАНИЯ

6.1 Структура кодового представления

6.1.1 Кодовое представление значения данных должно состоять пз четырех составных частей, следующих в порядке перечисления: а) октетов идентификатора (см. 6.2);

1>) октетов длины (см. 6.3);

с) октетов содержимого (см. 6.4);

d) октетов признака копна содержимого (см. 6.5).

6.1.2 Октеты признака конца содержимого содержатся в кодовом представлении только в том случае, если их наличие вытекает из значения октетов длины (см. 6.3).

6.1.3 На рисунке 1 показана структура некоторого кодового представления (простого или составною). На рисунке 2 показан один из вариантов составного кодового представления.

6.2 Октеты идентификатора

6.2.1 В октетах идентификатора должен быть закодирован тег того типа (класс и номер), к которому относится значение данных.

6.2.2 Для тегов, имеющих номер от нуля др 30 (включ.), октеты идентификатора представлены одним октетом, закодированным следующим образом:

а) биты 7 и 8 представляют класс тега и должны иметь- кодовое представление, задаваемое в таблице 1.

Ь) бит 6 должен быть нулем или единицей, в соответствии с правилами из 6.2.5.

с) биты с 5 по 1 должны быть кодовым представлением номера тега в виде двоичного целого с битом 5 в качестве старшего бита.

6.2.3 На рисунке 3 показан формат октета идентификатора для типа с номером тега от нуля до 30 (включ.).

6.2.4 Для тегов с номерами 31 и более идентификатор должен состоять из головного октета, за которым следует один или более октетов продолжения.

октеты

МД ЕК ТИРШ А ТОРА

октеты длины

октеты

СОДЕРЖИМОГО

I

Количество октЕ.поВ содержимого (см. 6.12)

Рисунок 1 Структура кодового представ/жияя

ГОСТ Р HUO МЭК S825-D3

ОКТСТы ОКТЕТЫ ОКТЕТЫ ОКТ£ТЫ ПРИЗНАКА

КДЕНГМИШОРА ДЛИНЫ СОДЕРЖИМОГО КОНЦА СОДЕ МНИМОГО

Годерн от noi/знок таг О. что октеты ссоержимогс окси' чидрготслоктета -ми лдазнака конца соДЕрки^ого (см. ЕЗЦ

Являете к признаком того, что о октеты Граер* иного не со^р' митгл оотее никаких которых прсЕстоО-лений

Рисунок ? Олин и» вариантов составного ходовою подставления Таблица 1 Кодовое представление класса тега

К.’ КС

bar a

Ebi 7

Универсальный (UN3VERSAL)

0

0

J 1риклади©й (APPLICAT) ON)

n

Контекстно-зависимый

0

1 [ользовап'льскнй (PRIVATE)

1

1

Октет А^ентирзикатира

БИТЫ в 7 6 5 ^ 3 2 f \kJUCC НОМЕР те;ГА

и - простое f- составное

Рисунок 3 Октет идентификатора (зля небольших номеров тегов)

6.2.4 ! Кодовое представление головного октета должна быть следующим:

S

ГОСТ р- И С О/М ЭК 8825—93

а) биты 8 и 7 задают класс тега и должны иметь кодовое представление. задаваемое таблицей I;

Ь) бит 6 должен быть нулем или единицей, в соответствии с правилами 6.2.5;

с) биты с 5 по 1 должны иметь кодовое представление 1И112.

6.2.4.2 Октеты продолжения являются кодовым представлением номера тега; они должны иметь следующий вид:

а) бит 8 каждого октета, за исключением последнего октета идентификатора, должен быть установлен в единицу;

Ь) биты с 7 по I первого октета продолжения, сцепленные с битами 7—I второго октета продолжения, сцепленные, в свою оче-роль, с битами 7—1 каждого из октетов продолжения до последнего включительно, должны быть кодовым представлением номера тега в виде двоичного целого числа без знака, с битом 7 первого октета продолжения в качестве старшего бита;

с> биты с 7 по I первого последу ющего октета не должны быть все установлены н ноль.

6 24.3 На рисунке 4 показан формат октетов идентификатора для типа, имеющего тег с номером больше 30.

6.2.5 Бит 6 должен иметь значение «ноль», если кодовое представление — простое, н «единица», если оно — составное.

Примечание — В последующих разделах для каждого типа указывается, каким является его кодовое представление — простым иля составным.

6.2.6 В ГОСТ 34.973 указано, что тег типа, определенного с помощью ключевого слова «CHOICE» (выборочный тип), принимает значение тега того типа, из которого было выбрано значение.

Рисунок 4 Октеты идентификаторов (для больших номеров тегов)

2 Зак. 149 б

ГОСТ Р И СО М ЭК 8«5—93

6.2.7 В ГОСТ 34 97 указано, что тег типа, выявленного с помощью ключевого слова «ANY» (произвольный тип), не определен. Произвольный тип должен быть впоследствии определен как некоторый тип АСН. I, и тогда полное кодовое представление будет кодовым представлением значения этого нового типа (включая октеты идентификатора).

6.3 Октеты Данны

6.3.1 Определено два формата октетов длины::

а) явный формат (см. 6.3.3) и

Ь) неявный формат (см. 6.3.4).

6.3.2 Отправитель должен придерживаться следующих правил: а) использовать явный формат (6 3.3), если кодовое представление простое;

Ь) использовать по выбору либо явный либо неявный формат (6.3.4), если кодовое представление составное и сразу доступно полностью;

с) использовать неявный формат (6.3.4), если кодовое представление составное и недоступно сразу полностью.

6.3.3 В случае явного формата октеты длины включают одни или несколько октетов, (определяющих количество октетов содержимого). в одном из двух форматов — коротком (6 3.3.1) или длинном (6 3.3.2) по выбору отправителя.

Прим ечаннс — Короткий формат может быть использован только в том случае, когда количество октетов содержимого меньше или равно 127.

6.3.3.1 В коротком формате октеты длины включают единственный октет, в котором бит 8 установлен в ноль, а биты с 7 по 1 являются кодовым представлением количества октетов содержимого (возможно, равного нулю) в виде двоичного целого числа без знака. с битом 7 в качестве старшего бита.

П ример — L-38 должно быть закодировано как 001001102

6.3.3.2 В длинном формате октеты длины состоят из начального октета и одного или нескольких октетов продолжения. Кодовое представление начального октета должно быть следующим:

а) бит 8 должен иметь значение «единица»;

Ь) биты с 7 по ) являются кодовым представлением количества доследующих октетов длины в виде двоичного целого числа без знака с битом 7 н качестве старшего бита;

с) двоичное значение 1)11 Ill 1а не должно использоваться.

Примечание — Это ограничение вводится для «аяыожиых последующих расширений.

Биты с 8 по I первого октета продолжения, сцепленные с битами 8—1 второго октета продолжения, сцепленные, в свою очередь,

7

ГОСТ Р ИСО/МЭК 8825-93

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

Пример — £=201 должно быть закодировано следующим образом: 10000001-1 10010012

Примечание — При негюльэом инн длинного формата отправитель может ио своему выбору использовать большее количество октетов длины, чем мс-Обходимый минимум.

6.3.4 В случае неявного формата октетов длины они указывают на то, что конец октетов содержимого задается октетами признака конца содержимого (см. 6 5). В этом случае группа октетов длины состоит из единственного октета.

6.3.4 1 Бит 8 этого- единственного октета должен быть установлен в единицу, а биги с 7 по 1 должны быть установлены в ноль.

6.3.4.2 Если используют этот формат длины, то присутствие октетов признака конца содержимого (см. 6.5). следующих за октетами содержимого, является обязательным.

6.4 Октеты содержимого могут состоять из пустого множества октетов, одного или более октетов, в которых должно быть закодировано значение данных, в соответствии с описанием, приведенным в последующих разделах.

Примечание — Кодовое представление октето» содержимого зависит от тина значения данных и описывается в последующих разделах, приеденных в той же последовательности, в которой приведены определения типов о стандарте «о АСН I.

6.5 Октеты признака конца содержимого

Октеты признака конца содержимого должны присутствовать в том случае, когда длина закодирована так. как описано в 6.3.4, в противном случае они должны отсутствовать.

Октеты признака конца содержимого должны -состоять из двух октегов с кулевым значением

Примечание — Охтеты яри знака копна содержимого могу? рассматриваться хак прост-се ходовое представление значения с тегом универсального класса к нулевым номером тега, н котором отсутствуют октеты содержимого, то есть:

Колсцсодсржимого Длина Содержимое

001» 00(в Отсутствует

7 КОДОВОЕ ПРЕДСТАВЛЕНИЕ БУЛЕВСКОГО ЗНАЧЕНИЯ

7.1 Кодовое представление булевского значения должно быть простым кодовым представлением. Октеты содержимого включают единственный октет.

8

ГОСТ Р ИСО/МЭК #825-93

7.2 Если булевское значение есть «ложь» («FALSE»), то этот ■октет должен иметь нулевое значение.

7.2.1 Если булевское значение есть «истина* («TRUE*), то этот октет должен иметь произвольное (по выбору отправителя), отличное от пуля, значение.

Пример — Значение «истина» булевского типа может быть закодировано следующим образом:

Булевский тип Длина Содержимое

Oho Olje FFie

8 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЦЕЛОЧИСЛЕННОГО ЗНАЧЕНИЯ

8 1 Кодовое представление целочисленного значения должно быть простым кодовым представлением. Группа октетов содержимого должна состоять из одного или более октетов.

8.2 Если октеты содержимого кодового представления целочисленного значения включают более одного октета,, то биты первого октета и бит 8 второго октета должны удовлетворять следующим условиям:

а) они не должны все иметь значение «единица»; и

Ы они не должны осе иметь значение «ноль».

Примечание — Эти правила гарантируют, что кодовое представление целочисленного типа будет состоять из наименьшего возможного количества ок-тетов

8.3 Октеты содержимого должны содержать двоичное число в дополнительном коле, которое равно кодируемому значению и образуется битами с 8 по I первого октета, соединенными с битами 8—1 второю октета, соединенными, в свою очередь, с битами 8—1 каждого последующего октета, до последнего октета содержимого включительно.

Примечание — Значение двоичного числа п дополнительном коде вычисляется следующим образом. Все биты в октетах содержимого нумеруются, начинай с бита I последнее октета, которому присваивается номер 0. и заканчивая битом 8 первого октета. Каждому биту’ приписывается числовое значение 2 в степени .V. где V — номер бита в олжанкоп выше нумерации Значение числа в дополнительном коде получается суммированием числовых значений, приписанных битам, установленным в единит/, за исключением бита 8 первого октета, и по-слсдующнч вычитанием числового значения, нрипнеанкого биту 8 первого октета, если он устзиоилен в единицу.

9 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ ПЕРЕЧИСЛИТЕЛЬНОГО ТИ ПА

Кодовое представление значения перечислительного типа должно совпадать с кодовым представлением целочисленного значения, связанного со значением перечислительного типа.

9

ГОСТ Р ИСО.МЭК 8825-М

30 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «ДЕЙСТВИТЕЛЬНОЕ ЧИСЛО»

10.) Кодовое представление значения «действительное число» должно быть простым кодовым представлением.

10.2 Если значение «действительное число» — значение «ноль», то н кодовом представлении не должно быть октетов содержимого.

10.3 Если значение «действительное число» — ненулевое значение. то основанием, используемым при кодировании, должно быть основание I}’. выбранное отправителем. Если 5'—2,8 (или 16). то должно использоваться двоичное кодовое представление, определяемое в п. 10.5. Если В"=10, то должно использоваться представление в виде строки знаков, определяемое в п. 10.6

Примечание; — Форма предъявления чисел в памяти, способ их получения или обработки отправителями и получателями и форма, используемая в обозначении значения ACIE. I. не зависят от «топания, используемого при пере-даче.

10.4 Бит 8 первого октета содержимого должен быть установлен следующим образам:

а} если бит 8= 1, то используют двоичное кодовое представление, описанное в п. 10.5;

Ь) если бит 8=0, и бит 7 = 0, то используют десятичное кодовое представление, описанное в 10.6;

с) если биг 8—0, и бит 7—1, то используют кодовое представление «Специального Действительного Значения» (см. ГОСТ 34.973), описанное в 10.7.

10.5 Если используют двоичное кодовое представление (бит 8—1). то при ненулевой мантиссе М она должна быть представлена знаком S, неотрицательным целочисленным значением N и двоичным масштабным коэффициентом F, таким образом, чтобы

Л!-$XA’X2F,

0<F<4,

S= + I или —1.

Примечание — Свобод» выбора значения F предоставлена для того, чтобы в целях облегчения образования формата передачи ликвидировать необходимость выравнивания запитой мантиссы на границу октета (см Приложение С) Наличие Г не усложняет существенным образом работу иремника.

10.5.1 Биг 7 первого октета содержимого должен быть установлен в «I». если S — — 1, и в «О» — в противном случае.

10.5.2 Биты 6 и 5 первого октета содержимого должны содержать закодированное значение основания Д', как описано ниже:

10

ГОСТ Р ИСО МЭК 8823—93

Виты в 11 5

<ХНМ «кие

00

3

01

к

10

16

II

Резервируется для последующих версий настоящего стандарта

10.5.3 Биты 4 и 3 первого октета содержимого должны содержать закодированное значение двоичного масштабного коэффициента F в виде двоичного целого без знака.

10.5.4 Биты 2 и 1 первого октета содержимого определяют формат кодового представления порядка:

а) если биты 2 и 1 равны «ОО», то во втором октете содержимого закодировало значение порядка в дополнительном двоичном коде;

Ь) если биты 2 и 1 равны «01». то во втором и третьем октетах содержимого закодировано значение порядка в дополнительном двоичном коде;

с) если биты 2 и I равны «10», то во втором — четвертом октетах содержимого закодировано значение порядка в дополнительном двоичном коде;

d) если биты 2 и 1 равны «11». то во втором октете содержимого закодировано количество октетов (обозначим его X) в виде двоичного целою без знака, используемое для кодирования значения порядка, а октеты содержимого с третьего no Х+З содержат кодовое представление значения порядка в дополнительном двоичном коде; значение X должно быть не меньше единицы; первые девять битов передаваемого значения порядка нс должны быть все нулями или единицами.

10.5.5 Оставшиеся октеты содержимого содержат кодовое представление значения целого числа N (см 10.5) как двоичного числа без знака.

Примечания

I Это ходовое представление нс является представлением « «нормализованной» виде, допуская несколько различных представлений одного и того же -значения (за исключением нуля). Выбор конкретного варианта определяется отправителей и может быть использован кая сказание, в широком смысле, па точность значения.

2 Описанный способ представлении действительных чисел сильно отличается О1 форматов, обычно используемых в аппаратуре, выполняющей операции с числами с плавающей запятой, однако он разработан таким образом, чтобы обеспечить легкость преобразования в эти форматы и обратно <си. приложение С).

106 Если используют десятичное кодовое представление (биты 8 и 7 равны «00»), то все октеты содержимого, следующие за пер-

ГОСТ Р ИСО/МЭК «823-93

вым октетом, образуют поле, в том смысле, в котором этот термин используют в ИСО 609$, которое имеет длину, выбранную отправителем, и кодовое представление, соответствующее ИСО 6093. Выбор способа представления числа из числа возможностей, предусмотренных ИСО 6093. задается битами с 6 no 1 первого октета содержимого, следующим образом

Биты е 6 ио 1

СяосоП преястяплепия числа

00 ООО!

00 «ИО

<О ООП

Форма NRI ИСО 609-3 Форма NR2 ИСО 6003 Форма NR3 ИСО 6093

Оставшиеся значения бит с 6 по 1 резервируют для следующих, пореви настоящего стандарта.

Приметания

V Рекомендация, содержащаяся в ИСО 6093, относительно использования по меньшей мерс одной цифры слева от десятичной занятой поддержи лается маете ятям стандартом, «о это Не является обязательным требованием.

2 Масштабирующие коэффициенты, описанные в сопровождающей документации. не должны использоваться (см. ИСОбОЭЗ).

3 Нормализованная форма (см. ИСО 6093) может использованься- по выбору отправителя, но этому не придается какого-либо значения

10.7 Когда кодируется «СпециальноеДействительноеЗначенио (биты 8 и 7 равны «01»), кодовое представление содержит только один октет содержимого, со следующими значениями:

01000000 Значение PLUS-INFINITY

01000001 Значение MINUS—INFINITY

Все другие значения, имеющие биты 8 и 7, равные О и I, соответственно, резервируют для дальнейших версий настоящего стандарта.

И КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «СТРОКА БИТ»

11.1 Кодовое представление значения «строка бит» может быть как простым, так к составным, по выбору отправителя.

Примечание — При необходямости передать часть битовой строки до того, как вся строка станет доступной, используют составное кодовое представление.

1 1.2 Октеты содержимого простого кодового представления должны включать начальный октет, за которым следует ноль или более октетов продолжения,

11.2.1 Биты строки бит, начиная с первого бита и кончая замы-

12

ГОСТ Р ИСО/МЭК 8825-93

кающим битом, располагаются по пор-ядку в битах с 8 по I первого октета продолжения, затем в битах 8—1 второго октета продолжения. затем в битах 8—1 каждого из последующих октетов продолжения. вплоть до последнего октета продолжения, из которого ис• пользуется столько бит, сколько нужно, начиная с бита 8.

Примечание. Термины «первый бит» и «замыкающий бит» определены и ГОСТ 34 973

11.2.2 Начальный октет должен быть кодовым представлением, в виде двоичного целого числа без знака с битом I в качестве младшего бита, числа неиспользуемых битов в последнем октете продолжения Это число должно заключаться в диапазоне от 0 до 7.

11.2.3 Если битовая строка не содержит ни одного бита, то в кодовом представлении отсутствуют октеты продолжения, а начальный октет должен иметь нулевое значение,

11.3 В случае составного кодового представления октеты содержимого должны включать некоторое количество (от нуля и более) полных кодовых представлений значений данных.

Примечание — Каждое из этах кодовых представлений включает октеты идентификатора, длины и содержимого и может включать октеты признака каина содержимого, если owe само является составным.

11.3.1 Каждое из кодовых представлений, являющихся частью октетов содержимого, должно быть кодовым представлением значения типа «строка битов» («BIT STRING»).

Примечание — В частности, все теги, закодированные в октетах содержимого. относятся к универсальному классу и имеют номер 3

11 3.2. Биты кодируемого значения «строка бит», начиная с первого бита по порядку вплоть до замыкающего бита, помещаются в биты с первого по замыкающий первого значения данных, закодированною в октетах содержимого, затем в биты с первого по замыкающий второго значения данных, закодированного в октетах содержимого. затем в биты с первого по замыкающий каждого последующего. вплоть до последнего, значения данных, закодированного в октетах содержимого.

11.3.3 Количество бит, входящих в каждое значение данных, закодированное в октетах содержимого, за исключением последнего, должно быть кратно восьми.

Примечание — Значение дал вых, закол врованнОс в октетах содержимого. может быть строкой бит нулевой длины.

113.4 При использовании составного кодового представления не должно придаваться никакого значения границе между значениями данных, закодированными в октетах содержимого.

13

ГОСТ Р ИСО,МЭК 8825- 9-3

11.3.5 Кодовое представление каждого из значений данных, закодированных в октетах содержимого, может быть либо простым, либо составным.

П р и к I- ч 2 н и е — Обычно оно является прост ым.

Пример — Значение '0A3B5F29ICD'H типа «строка бит» (BIT STRING) может быть закодировано, как показано ниже. В этом примере кодовое представление строки бит — простое.

СтрокаБит Длина Содержимое

0316 07, e O4OA3BSF29ICDO.6

Приведенное выше значение может быть закодировано другим способом, показанным ниже. В этом примере кодовое представление строки бит — составное

СтрокаБит 23,6

Длина

80,в

Содержимое

СтрокаБит

ОЗ., 03,6

Признак конца содержимого 00|Я

Длина Содержимое

03,6 000АЗВ16

05,6 O45F291CDOI6

Длина

00,6

12 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «СТРОКА ОКТЕТОВ»

12.1 Кодовое представление значения «строка октетов» может быть как простым, так и составным, по выбору отправителя.

Примечание — При необходимости передать честь строки октетов до того, как вс* строка станет доступной, миолыуют составное кодовое представление

12.2 Простое кодовое представление содержит ноль или более октетов, равных по значению октетам значения данных, следующих в том же порядке, в котором они присутствуют в значении данных, причем полиции старших бит каждого из октетов значения данных должны совпадать с позициями старших бит сэаетов содержимого.

12.3 В случае составного кодового представления октеты содержимого должны включать некоторое количество (от нуля н более) полных кодовых представлений значений данных.

Примечание — Каждое из этих кодовых представлений включает октеты идентификатора, длины и содержимого н может включать октеты признака конца содержимого, если оно само является составным.

12.3.1 Каждое из кодовых представлений, являющихся частью октетов содержимого, должно быть кодовым представлением значения типа «строка октетов* («OCTET STRING*).

14

ГОСТ Р НСО/МЭК 8825—93

Примечание — В частности, кс теги, закодированные в октетах содержимого. отпоентсн к универсальному классу и имеют номер 4.

12.3.2 Октеты кодируемого значения «строка октетов», начиная с первого октета по порядку вплоть до замыкающего октета, поме-итаются в октеты с первого по замыкающий первого значения данных, закодированного в октетах содержимого, затем в октеты с первого по замыкающий второго значения данных, закодированного в октетах содержимого, затем в октеты с первого по замыкающий каждого последующего, вплоть до последнего, значения дан-ных. закодированного в октетах содержимого.

Примечание — Значение данных, закодированное п октетах содержимого. может быть строкой октетов нулевой, длины.

1.2.3 3 При использовании составного кодового представления не должно придаваться пика кото значения границе между значениями данных, закодированными в октетах содержимого.

123 4 Кодовое представление каждого из значений данных,, закодированных в октетах содержимого, может быть либо простым, либо составным.

Примечание — Обычно око является простым.

13 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ВЫРОЖДЕННОГО ЗНАЧЕНИЯ

13.1 Кодовое представление вырожденного значения должно быть простым кодовым представлением.

13.2 Октеты содержимого не должны содержать ни одного октета.

При мема и ис — Октет длины имеет нулевое значение.

Пример — Вырожденное значение («NULL») вырожденного типа («NULL») кодируют следующим образом:

ВырожденноеЗмаченне Длина

OS ie 00; в

14 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «ПОСЛЕДОВАТЕЛЬНОСТЬ»

14.1 Кодовое представление значения «последовательность» должно быть составным.

14 2 Группа октетов содержимого должна состоять из полных кодовых представления значений данных, по одному из каждою типа, перечисленного в определении типа «последовательность^ (в нотации ЛСН. 1). в том же порядке, н котором типы следовали в определении, за возможным исключением типов, отмеченных в определении ключевым словом «OPTIONAL» или ключевым словом «DEFAULT».

15

I OCT P ИСО,.'МЭК 8825—93

14.3 Кодовое представление значения данных, тип которого был отмечен ключевым словом: «OPTIONAL» или «DEFAULT», может присутствовать в октетах содержимого, но не обязательно. Если оно присутствует, то оно должно входить в кодовое представлен не в том месте, которое соответствует вхождению соответствующего типа в определении типа «последовательность».

П ример — Знамен не

{name «Smith», ok TRUE)

типа

SEQUENCE {name IA5String. ok BOOLEAN»

может быть закодировано следующим образом:

Последовательность Длина Содержимое

ЗО|6

0А|б

lA5String Длина Содержимое

16|В 05ie «Smith»

БулевскийТип Длина Содержимое

01 ю 0114- FFie

15 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «ПОСЛЕДОВАТЕЛЬНОСТЬ ИЗ»

15.1 Кодовое представление значения «последовательность из» должно быть составным.

15.2 Группа октетов содержимого должна состоять из полных кодовых представлений значении данных типа, приведенного в определении тина «последовательность из» (в нотации АСН. I).

15.3 Порядок следования кодовых представлений значений данных должен совпадать с порядком следования значении данных в кодируемом значении «последовательность из».

16 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «МНОЖЕСТВО»

16.1 Кодовое представление значения «множество» должно быть составным.

16.2 Группа октетов содержимого должна состоять из полных кодовых представлений значений данных, но одному из каждого типа, перечисленного и on ределенни тина «.множество» (в нотации АСН. I), в порядке, определяемом отправителем, за возможным исключением типов, отмеченных в определении ключевым словом «OPTIONAL» или ключевым словом «DEFAULT».

16.3 Кодовое представление значения данных, тип которого был отмечен ключевым словом «OPTIONAL» или «DEFAULT», может присутствовать в октетах содержимого, ко не обязательно.

16

ГОСТ Р ИСО/МЭК «Я5-93

П ри мича и не —Порядок следования значений данных в значении «мио-жеетк» несущественен и не налагает никаких ограничений на ах порядок следо-иа пня при передаче.

17 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «МНОЖЕСТВО ИЗ»

17.1 Кодовое представление значения «множество из» должно быть составным.

17.2 Формулировка 15.2 справедлива здесь также.

17.3 Порядок следования значений данных не требуется сохранять при кодировании и последующем декодировании.

18 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ВЫБОРОЧНОГО ЗНАЧЕНИЯ

Кодовое представление значения выборочного типа должно быть тем же самым, что и кодовое представление значения выбранного-типа.

Примечания

I Кодовое подставление может быть простим или составным; эго за висит от выбранного типа.

2 Тег, используемый в октетах идентификатора*, является тегом выбранного тала, в соответствии с определением выборочного типа в нотации ЛСН ].

19 КОДОВОЕ ПРЕДСТАВЛЕНИЕ СЕЛЕКТИВНОГО ЗНАЧЕНИЯ

Кодовое представление значения селективного типа должно быть тем же самым, что и кодовое представление значения селектируемого типа.

Примечание — Кодовое представлен!» может быть простым или составным; это зависит От селектируемого типа.

20 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ТЕГИРОВАННОГО ЗНАЧЕНИЯ

20.1 Кодовое представление тегированного значения получается из полного кодового представления соответствующего значения данных того «Типа», который задан в обозначении «Помечен-нынТип» (называемого исходным кодовым представлением), способом. описанным в я. 20.2 и 20.3.

20.2 Если в определении помеченного типа не использовалось-ключевое слово «IMPLICIT», то кодовое представление значения должно быть составным, и группа октетов содержимого должна совпадать с полным исходным кодовым представлением.

20.3 Если при определении типа использовалось ключевое слово «IMPLICIT», то должны быть выполнены следующие требования;

17

ГОСТ Р ИСО/МЭК 8в25-93

а) кодовое представление должно быть составным, если исходное кодовое представление составное;

Ь) группа октетов содержимого должны совпадать с группой ок

тетов содержимого исходного кодового представления

Пример — Ниже приведены кодовые представления значения «Jones» для следующих типов АСН. 1:

Туре! ::- Visi bieString

Туре2::- [APPLICATION 3] IMPLICIT Type!

ТуреЗ:: = [2] Type 2

Type* :: = [APPLICATION 7) IMPLICIT ТуреЗ

Type5 ::~[2J IMPLICIT Type2

Эти кодовые представления следующие:

— для типа Туре):

VisibleString Длина Содержимое

1А,в &5,6 4A6F6E6573,e

— для типа Турс2:

[APPLICATION 3] Длина Содержимое

43,в 05„ 4AGF6E6573,«

— для типа ТуреЗ:

[2] Длина Содержимое

А2,в 07,, (APPLICATION 3( 43,6

— для типа Туре4:

Длина Содержимое

05|в 4A6F6E6573,e

(APPLICATION 7]

67 it

(APPLICATION 3]

'13|в

— для тина ТуреЗ:

Длина Содержимое

07

Длина Содержимое

05,* 4A6F6E6573,C

[2] Длина Содержимое

82,в 05,в 4A6F6E6573te

21 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ ПРОИЗВОЛЬНОГО ТИПА

Кодовое представление значения произвольного («ANY») типа должно быть полным кодовым представлением, определяемым настоящим стандартом для того типа, к которому о-тносится кодируемое значение.

22 КОДОВОЕ ПРЕДСТАВЛЕНИЕ ЗНАЧЕНИЯ «ИДЕНТИФИКАТОР ОБЪЕКТА»

22.1 Кодовое представление значения «идентификатор объекта* должно быть простым кодовым представлением.

18

ГОСТ Г ИСО/МЭК 8825-93

.22,2 Октеты содержимого должны быть {упорядоченной) последовательностью следующих друг за другом кодовых представлений субидеитификагорои (см. 22.3 и 22.4).

Каждый суб идентификатор представляется последовательностью одного или более октетов. Бит 8 каждого октета указывает, является ли этот октет последним в последовательности: бит 8 последнего октета должен иметь значение «воль», а бит 8 каждого предшествующего октета — значение «единица». Битами 7—1 октетов этой последовательности кодируют субидентификатор. Эти группы бит, последовательно соединенные друг с другом, следует рассматривать как двоичное число без знака, старшим битом которого является бит 7 первого октета, а младшим битом — бит I последнего октета. Субидентификатор должен быть закодирован с помощью наименьшего возможного количества октетов: это означает, что головной октет субидентнфикатора не должен иметь шестнадцатеричное значение 80.

22.3 Количество субидентификаторов (.V) должно быть на единицу меньше количества компонентов идентификатора объекта в кодируемом значении «идентификатор объекта».

22.4 Числовое значение первого субндентифнкатора вычисляется по двум первым значениям компонентов кодируемого значения «идентификатор объекта» с помощью формулы

(А'*40)->',

где А’—значение первого компонента идентификатора объекта, а У — значение второго компонента идентификатора объекта.

Приискание— Эго «упакованное» представление двух первых компонентов ндентификаюра объекта возможно в Силу гою, что выделено лишь три значения для ребер, выходящих нт корневой вершины, и не более 39 последующих значений — Ала вершин, соответствующих Л —0 м Л- I

22.5 Числовое значение f ro субидентификатора (при 2< =е<=Л’) совпадает с числовым значением (t+l)-ro компонента идентификатора объекта.

Пример— Значение типа OBJECT IDENTIFIER

{joinC-isoccitt 100 3},

которое в другой форме записывается в виде

{2 100 3).

имеет первый субидентификатор, равный 180, и второй субиденги-фикатор, равный 3. Получаемое в результате кодовое представление имеет влд:

OBJECT IDENTIFIER Длина Содержимое 06 03 813403,6

19

ГОСТ Р И СО м ЭК 8825—аз

23 КОДОВЫЕ ПРЕДСТАВЛЕНИЯ ЗНАЧЕНИЙ ТИПОВ «СТРОКА ЗНАКОВ»

23.1 Значение данных рассматриваемого типа является строкой таков того знакового набора, который был задан при определении типа с помощью нотации АСН. I.

23.2 Каждое значение данных кодируют независимо от других значений данных того же типа.

23.3 Каждый тин «строка знаков» кодируют гак, как если бы он был объявлен как

{UNIVERSAL xl IMPLICIT OCTET STRING

где х _ номер тега универсального класса, присвоенного данному типу «строка знаков» в ГОСТ 34.973. Значение этой строки октетов (OCTET STRING) определено в 23.4 и 23.5.

23.4 Если рассматриваемый тип «строка знаков» определен в ГОСТ 34.973 ссылкой на таблицу, в которой перечислены входящие ы этот тип знаки (типы Numeric-String и PrintabieString), то значение вышеупомянутой строки октетов'для кодируемого значения «строка знаков» формируется так же. как для такого же значения типа Visible-String, в соответствии с 23.5

23.5 Рассматриваемая строка октетов должна содержать октеты, определенные в ИСО 2022 для кодовых представлении в 8-битной операционной среде с использованием Esc-последовательности и знаковых кодов, зарегистрированных в соответствии с ИСО 2375-

23.5.1 Esc-последовательность, может использоваться только в том случае, если она задается одним из регистрационных номеров, использовавшихся для определения данного типа «строка знаков» в ГОСТ 34.973.

23.5.2 Предполагается, что в начале каждой строки задаются и вызываются (в терминологии ИСО 2022) регистрационные номера наборов G0 м/или СО и/или О. Эти регистрационные номера заданы для каждого типа в таблице 2 вместе с соответствующими Esc-последовательностями, использование которых подразумевают.

23.5.3 Кодовые представления некоторых типов «строка знаков» не могут содержать явные Esc-последовательности, тогда как в других случаях любая Esc-последовательность, разрешенная в 23 5.1. может присутствовать в любом месте, в том числе в начале кодового представления. В таблице 2 указаны типы, для которых разрешается использование явных Esc-последовательностей.

23.5 4 Использование последовательностей оповещения не допускается. за исключением случаев, когда это явно разрешается пользователем АСН. I.

примечание — Выбор одного из тиши» АСН. I предоставлявт ограниченные функциональные возможности, аналогичные функциональным возможностям последовательностей оповещения Конкретные протоколы прикладного уровня могут либо предписывать передачу последовательностей оповещения а составе других протокольных элементов, либо детально определять способ их использования.

20

ГОСТ Р ИСО/МЭК 8825-93

Таблица 2

Использование ESC-последовательностей

Тиа

Предполагаемый ntfiop Go (регистра-цмомкый ТТОЯГф)

ПрИДПОЛига-см ый наб»? G0 (регистра-3(^011111.11'1 номер}

Лр^-лиолагиимые

Е «с-авелсдапзтелыюстя и керввол регистра. lte.HI При ИСИПКЖЯ1

Разрешаются ли инн нс Ew-иоследежз-тельноети?

NumcricString

2

ESC 2/8 4/0 LSO

НЕТ

Printable-String

2

ESC 2/8 4/0 LSO

НЕТ

TcktexSlriiig 1 T6bStringi

102

кв (О) 107(01)

ESC 2/8 7/5 LSO ESC 2/1 4/5

ДА

Video texSiring

102

1 (СО) 7HCI)

ESC 2/8 7/5 LSO

ESC 2/1 4/0

ESC 2/2 4/1

ДА

Visible-Siring

1 l$O646S1ring)

2

ESC 2/8 4/0 LSO

НЕТ

1 ASString

2

ЦС0)

ESC 2/8 4/0 LSO ESC 2/1 4/0

НЕТ

Graphicstring

2

ESC 2/8 4/0 LSO

ДА

GencralString

2

КС0)

ESC 2/8 4/0 LSO

ESC 2/1

ДА

Примечание — Многие из часто используемых знаком (например, от А до Z) «ходи! и несколько знаковых репертуаров с различными регистрацноикы-ми номерами и Е^с-пОследойатольностями. В тех случаях, когда строка знаков относигся к типу, для которою разрешается использование Ея>послед«я»атгль-костей, возможно несколько рамичмых способов сю кодирования (см. также 5.3.).

Пример — Пусть определение типа в нотации АСН. I имеет вид:

Name::” VisibI eString

Тогда значение этого типа

«Jones»

может бить закодировано (в простой форме) как

VisibleString Длина Содержимое

LAle 05 |в 4A6F6E6573ie

либо (в составной форме, с явным заданием длины) как

21

ГОСТ Р ИСО/МЭК 8825—93

'isibleString ЗА io

СтрокаОктетов 04,6

СтрокаОктетов 0416

Длила 09|в

Содержимое

Длина 03,8 Длина 02

Содержимое 4A6F6EJ6 Содержимое 6573

либо (в составной форме, с неявным заданием длины) как VisiMeString Длина

ЗА, в СтрокаОктетов 0-1,6 СтрокаОктетов 04,6

Комен содержимого 00,6

80,в Длина 03ч* Длина 0214 Длина 00|G

Содержимое

Содержимое 4A6F6E„ Содержимое 6573,а

В приведенном выше примере проиллюстрированы три из многих возможных форматов кодового представления, которые отпра-витель может использовать по своему выбору. Получатели должны обрабатывать кодовые представления всех допустимых форматов (см. также 5.3).

24 КОДОВЫЕ ПРЕДСТАВЛЕНИЯ ЗНАЧЕНИЙ ОБЩЕУПОТРЕБИТЕЛЬНЫХ ТИПОВ АСН. I

Определение этих типов с помощью нотации АСН. 1 приведено в ГОСТ 34.973. Кодовое представление получается применением правил, определенных в настоящем стандарте, н соответствии с определением типа.

25 ИСПОЛЬЗОВАНИЕ ПРИ ОПРЕДЕЛЕНИИ СИНТАКСИСА ПЕРЕДАЧИ

25.1 Ссылка на правила кодирования, определенные настоящим стандартом, и их применение дают возможность определить для каждого значения данных какого:либо одного типа АСН.1 кодовое представление в виде единой строки окютов, содержащей в себе признак окончания и однозначно задающей закодированное значение.

Примечание — Вее такие строки октетов яа.ыкжя Однозначно нигер-прсти^усмыми а рамках одного типа АСН I. При чередовании кодовых представлений значении различных типов однозначность может нс- сохраняться.

2.5.2 Для идентификации и описания правил кодирования, определенных в настоящем стандарте, ни назначаются следующие идентификатор объекта

22

ГОСТ Р ИСО.'МЭК $525—93

{joint-iso ceitt asnl (J) basic-encoding (!) } к описатель объекта

«Basic-Encoding of a single ASN. I type»

25.3 Если в спецификации прикладного уровня определяется абстрактный синтаксис как множество значении данных представления. относящихся к одному явно поименованному типу АСН. 1, которым обычно (но не обязательно) является выборочный тип. то значение «идентификатор объекта», определенное в 25.2, может быть использовано вместе с именем абстрактного синтаксиса для идентификации синтаксиса передачи, получаемого применением правил кодирования, определенных в настоящем стандарте, к явно указанному типу АСН. 1, используемому при определении абстрактного синтаксиса.

Примечание — В частности, этот идентификатор правил кодировании может быть мдам в поле «имя синтаксиса передачи», определенном в протоколе уровня представления (ГОСТ 34.9721.

25.4 Идентификатор, определенный в 25.2, не должен использоваться вместе с именем абстрактного синтаксиса для идентификации синтаксиса передачи, если при определении абстрактного синтаксиса не были выполнены условия 25.3.

23

ГОСТ Р И СО.'«ЭК 8825-93

ПРИЛОЖЕНИЕ А

Информ анионное

ПРИМЕР КОДОВОГО ПРЕДСТАВЛЕНИЯ

3 этом приложении поясняется применение базовых правил кодирования на примере представления в виде пошк-дюватч-льностп октетов некоторой (вымышленной) з-апкеи учета кадров, определенной с по ношею нотации АСН. I.

А. I Описание структуры записи с помощью АСН. I

Структура некоторой вымышленной записи учета кадров формально ниже с помощью стандартных 0бОЛиач«ииА для типов данных нотации ошк-лелс-иной в ГОСТ 34.973.

описана АСН I.

PersonndlRiwrd:: -

title n umber dakOiHire nameOlSpousc children

Chiidlnformation :: =

(APPLICATION 0] IMPLICIT SET

Name,

[0] VisiblcSlring;

EniployeeNuntbe r.

Ш Da<c-

Nairne,

(3J IMPLICIT SEQUENCE OF

Childinform atioiT DEFAULT { ) } SET

{ Name

dateOfBirth (01 Dale )

Name ::- (APPLICATION i] IMPLICIT SEQUENCE

(given Name Visible-String.

initial Visible String.

familyNamc VisibleString}

EmployceRumber;: - (APPLICATION 2] IMPLICIT INTEGER

Date::- (APPLICATION 3] IMPLICIT Visible-Siring---YYYYMMDD

A.2 Описание значения записи с помощью АСН. Г

Ниже приведено значение записи учета кадров для служащего по имени John Smith, определенное с похотью йотация АСН I.

{ (gieenName «John», initial «Рэ,

lamilyhlame «Smith» }, title «Director* nirnber 51

dateOtHne «19710917*

namcOiSprouse {givenNarne «Магу», initial «Т»,

familyName «Smith» ), children

{((give.ihiame «-Ralph*, initial «T>, familyName «Smith»}, da teOl Birth «19571111» ).

({givenName «Susan», initial «В», family-Name «Jones»}, dalcOfBirth «19590717» }})

A.3 Кодовое представление этого значения записи

Ниже приводится представление в октетах приведенного выше .значения записи (лослс применения базовых правил кодирования, юл ре деленных в настоящем стандарте). Значения идентификаторов, длин и целочисленные величавы

24

ГОСТ Р ИСО/МЭК «823—93

привалены в шестнадцатеричной записи, ио две шестнадцатеричные цифры на октет. Значения содержимого знаковых строк показаны в пиле текста, по одному

злаку на октет Personnel

Record Длина Содержим ос 60 8185

Name Длина Содержимое 61 10

Visible Strut и Длина 1А 04

Visible String Длина

IA 01

VisibleString Длина 1Л 05

Title Длина Содержимое

Visible-String Длняа 1А 08

Employee

Number Длина Содержимое

42 01 3

Date of

Hire4 Длина Содержимое

Л 1 Л*

Содержимое «John» Содержимое «Р»

Содержимое «Smith»

Содержимое «Director»

Name of Spouse Л2

(3| Длина

АЗ 42

Sol 31

Date Длина Содержимое

43 08 «19710917»

Длина Содержимое

12

Name Длина Содержимое

61 10

Visible-String Длина Содержимое

1Л 04 «AVar у»

Visible-String Длина Содержимое

IA 4)1 сТ»

Visible Siring Длина Содержимое

!Л ’ «5 «Smith»

Содержимое

Длина Содсрж «мое IF

Name Длина Содержимое 61 11

Date of

Visible-String

Длина

Содержимое

IA

05

«Ralph»

VisibleString

Длина

Содержимое

IA

01

«Т»

Visible-String

Длина

Содержимое

IA

05

«Smith»

Birth Длина Содержимое

ЛО ОЛ

Dale Длина Содержимое

43 08 «19571111»

25

Set

31

Длина Содержимое

IF

Name Длина Содержимое

61 II

VisibkStrine Длина

JA 05

VhiblcSlring Длина

IA О!'

Visib-lcString Длина

IA 05

Dale of

Birth Длина Содержимое

АО ОА

Date Длина Содержимое

4.3 08 «19590717»

ГОСТ Р ИСОМЭК 8823-М

Содержимое «Susan» Содержимое «В»

Содерж имое

♦Jones»

ПРИЛОЖЕНИЕ В Информационное

ПЕРЕЧЕНЬ ПРИСВОЕННЫХ ЗНАЧЕНИИ «ИДЕНТИФИКАТОР ОБЪЕКТА»

В настоящем стандарте присвоены следующие значения:

Раздел Значение «идентификатор объекта»

Значений «описатель объекта*

25.2 (joint-iso-ccitt asnl (1) basic-encoding (1) )

«Basic Encoding of a single ASN. 1 type»

26

ГОСТ Р ИСО МЭК 8825—93

ПРИЛОЖЕНИЕ С Инфо? м зиисж ное

ПОЯСНЕНИЕ К КОДОВОМУ ПРЕДСТАВЛЕНИЮ ЗНАЧЕНИЯ «ДЕЙСТВИТЕЛЬНОЕ число»

С.Е При реализации алгоритмов, которые следует использовать на стороне Отправителя для преобразования продет видении действнтельного числа а форме с плавающей запятой в октеты длины и октеты содержимого кодового представ-лепим значения «действительное число» нотации АСН I, обычно начинают с рассмотрения имеющейся аппаратуры для представления чисел с плавающей занятой В данном приложении поясняются шаги такого алгоритма на (искусственном! примере некоторого аппаратного представления мантиссы чисел с плавающей запятой. «(Ис а за иного на рисунке 5.

6S Ы

Ь8 Ы

I 11II ГТ

I И НГ1

Октет!

^амтисса л- «■ —Ш мм* * * -

Октет 5 Октет 6

Рисунок 5 Представление чисел с плапаюшей точкой

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

С2 Октеты содержимого, которые требуется сформировать при посылке ненулевого значения, следующие:

I S ЬЬ И ее Октеты для Е Октеты для N

где «$» (знак мантиссы) зависит от преобразуемого значения. «ЪЬ» — фиксированное значение (например. )0) для представления основания (в нашем случае мы будем предполагать, что оснонзниг равно J6), «П» — фиксированное значение-, вычисляемое как описано в С.З. и «•<.•» — фиксированная длина порядка, вычисляемая как описано в С.4 (а данном приложении не рассматривается случай, когда для Е требуется более трех октетов)

СЗ Алгоритм передает октеты с J по 5 аппаратного предствэлгния. после установки в «О* битов с 8 по 3 октета 1 н бит с 4 но 1 Октета 5, как значение N. В аппаратном представлении запятая предполагаете и между битами 2 и ( октета !. который содержит значение Е. Эта предполагаемая позиция может быть сдвинута (/ближайшую позицию за окончанием октета 5 уменьшением значения Е 1Мрел передачей. В нашем примере мы можем сдвинуть запятую на четыре бита при каждом уменьшении на единицу значения порядка (поскольку предполагается основание 1-6). гак что уменьшение порядка на 9 поместит предполагаемое положение запятой в позицию между 6 и 5 битами октета 6 Таким образом значение М будет равно NX2’ для правильной установки запятой а М. (Предполагаемое положение запятой и N после передачи октетов — после бита 1 октета 5}. Таким образом:, мы имеем критические параметры:

F-3 (ff равно IJ) декремент порядка—9

27

ГОСТ Р ИСО.-МЭК 8825-93

С 4 Длина значения порядка вычисляется теперь определением максимального количества октетов, необходимого для представлений значений

Emm— (сдвиг) — (декремент порядка)

Ещ.х— (сдвиг) — (декремент порядка)

где Етщ и Ет„— минимальное и максимальное целочисленные значения аппаратного представления порядка, сдвиг — любое значение, которое требуется им честь для получения правильного значения порядка, а декремент порядка вычисляется как описано в СЗ Предположим, что это дает длину 3 октете Тогда «ее» равно 10. Предположим также, что сдвиг также равен нулю.

С 5 Алгоритм передачи теперь можно описать следующим образом.

а) проверить на нулевое значение и. если да. то передать значение АСН. I нулевой длины (без октетов содержимого) и закончить выполнение алгоритм»;

Ь) проверить и запомнить знак мантиссы и. если он отрицательный, то ни-аертировать мантиссу,

с) передать поле длины значения АСН. I. равное 9. а затем октет

11 ЮН 10, если значение отрицательное или

10101110, если значение положительное

d| сформировать^ передать 3 октета порядка со значением

е) установить в ноль биты с 8 по 3 октета I и биты с 4 по 5 октета 5. и передать 5 октетов мантиссы.

С 6 Алгоритм ив приемной стороне должен быть рассчитан на обработку значения в любом формате, допустимом в АСН 4, но при этом может непосредственно использоваться блок арифметики с плавающей запятой. Обработка ведется следующим-образом:

а) проверяем первый октет содержимого; если он равен 1 НОИ 10 или 10101110, то переданное значение допускает представление в нашей аппаратуре, и мы можем применить алгоритм, обратный передающему алгоритму;

Ь) в противном случае, при представлении в виде строки знаков, вызывается стандартная программа преобразования значения из десятичной формы в прелстаялеиие с плавающей запятой, при этом «СпециальнысДсйстяиттльныеЗка-чення» обрабатываются в соответствии с их прикладной семантикой (возможна установка максимального и минимального численных значений, которые может обрабатывать блок арифметики с плавающей запятой);

с) если передано значение о двоичном представлении, помешаем N в блок арифметики с плавающей запятой, отбрасывая, если необходимо, младшие октеты, умножаем на 2F и ЭЕ и, если это необходимо, инвертируем полученное значение. При реализации может оказаться возможной оптимизация в некоторых специальных случаях, но может также оказаться, что выявление этих специальных случаев влечет большие накладные расходы, чем выигрыш при оптимизации (кроме выявления случаев совместимости с имеющейся аппаратурой).

СТ Прицеленные выше алгоритмы носят иллюстративный характер При реализации возможна выработка других стратегий наилучших п конкретных случаях.

28

ГОСТ Р ИСО МЭК 8825-93

УДК 681.324:006.354

1185

Ключевые слова: взаимосвязь открытых систем, спецификация базовых правил кодирования, абстрактно-синтаксическая нотация, ■синтаксис передачи, декодирование, услуги уровня представления

ОКСТУ «1002

Редактор В. П. Огурцов Технический редактор В. Н. Пруткова

Корректор Е. Ю. Г■ебрух

■Само я мовор 18.01.94. Полл и иеч. 00.U3.9*. Уел. печ л. 1.80. Усл. кр.-otr. 1.86.

Ут . изд. л I.W Тир. -400 яо. С 1072.

Ордена «Знак Почета* Издательство стандарте». 107076. Москва. Колодеаиий пер., Н. К*лужсжая типография стандартов, ул. Московская. 2:6 Зак. 149

29