Стр. 1
 

32 страницы

456.00 ₽

Купить официальный бумажный документ с голограммой и синими печатями. подробнее

Официально распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль".

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

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

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

Веден впервые (ИУС № 2-3-1994)

Оглавление

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

2 Нормативные ссылки

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

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

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

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

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

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

   6.3 Октеты длины

   6.4 Октеты содержимого

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложение В Перечень присвоенных значений «идентификатор объекта»

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

Показать даты введения Admin

Страница 1

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

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

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

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

СПЕЦИФИКАЦИЯ БАЗОВЫХ ПРАВИЛ КОДИРОВАНИЯ ДЛЯ АБСТРАКТНО-СИНТАКСИЧЕСКОИ НОТАЦИИ ВЕРСИИ ОДИН (ACH. I)

Qi

§

ч

о

сч

С1

2

* ... . , “

п

10

ГОССТАНДАРТ РОССИИ М ос к•«

Страница 2

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

Предисловие

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

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

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

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

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

Госстандарта России

Страница 3

ГОСТ Р НСО/МЭК «825-93

СОДЕРЖАНИЕ

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

2    Нормативные ссылки    .................1

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

♦ Сокращения и обозначения............3

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

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

6.) Структура кодового представлении............-    4

62    Октеты идентификатора.............4

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

6.4    Октеты содержимого..............8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24    Кодовые    представления    значений общеупотребительных типов АСИ. 1 . 5г2

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

Приложение А Пример кодовою представления .    ...    . 'М

A.I Описание структуры записи с помошью АСН (....:    24

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

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

Приложение В Перечень присвоенных значении «идентификатор

объекта»    .    ............26

Приложение С Пояснение к кодовому представлению значения    «действительное ЧИСЛО* . .............    27

*


II

Страница 4

ГОСТ Р ИСО/МЭК 8825-93 Г ОСУДА РСТ В Ell IIЫИ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Информационная технология ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ

Спецификация Салоимх правил кодирования для аОорактмо -синтаксической нотации версии од«м (ACH. I)

Information technology. Open Systems Interconnection. Specification of Basic Encoding Rules lor Abstract Syntax Notation One (ASN 1)

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

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

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

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

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

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

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

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

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

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

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

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

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

Страница 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1

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

Страница 6

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

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

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

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

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

4.1    Сокращения

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

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

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

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

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

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

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

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

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

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

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

Страница 7

ГОСТ Р ИСО;Л\ЭК 8825-93

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

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

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

а) октетов идентификатора (см. 6.2);

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

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

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

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

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

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

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

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

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

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

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

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

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

СКТСТЫ

ОКТЕТЫ

ОКТЕТЫ .

ХДЕлГНЫКАТОРА

ДЛИНЫ

СОДЕРЖИМОГО

7

Количество окmemoS содержимого (см. 6. X 2}

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

Страница 8

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

ОКТЕТы

ОКТЕТЫ

ОКТЕТы

ОКТЕТЫ ПРИЗНАКА

КДЕХтШАТОРА

длины

СОДЕРЖИМОГО

I

]

Содержит признак    Является признаком

того, что октеты    того, что в октетах

содержимого оком-    сеогокимсго не с о дер ~

чиЗоатсяоктета-    мцтсяболее никаких

ми примака конца    кодовых продета ff -

содержимого    лений

Ссм. 6.3Л)

\

Рисунок 2 Олин из вариантов составного ходового представления

Таблица 1 Кодовое представление класса т«тд

Кл»сс

Бит Ь

D*i 7

Ун н ворса льны fl (UNIVERSAL)

0

0

Прикладной (APPLICATION)

0

I

Комтсконо-гавксимыА

1

0

Пользовательский (PRJVATK)

i

1

-

' -

т

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

БИТЫ в

7 6

5 4 J

2 Г

|КЛАСС

\о/с

НОМЕР

ТЕГА |

тт

U-ПРОСТОЕ (- СОСТАВНОЕ

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

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

Страница 9

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

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

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

c)    биты с 5 по 1 должны иметь кодовое представление 111 ] |2.

G.2.4.2 Октеты продолжения являются кодовым представлением

номера тега; они лол/хны иметь следующий вид:

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

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

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

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

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

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

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

Ск-~е.-пь/ поодолменир_

Последний

:гсЗ»:й :ктет 2-й октет    октет

Kf.A ГГ | ? *Г

/////1

I У □*: >□+ О

- номер тега

Рисунок Ч Октеты идентификаторов (дли больших номеров тегов) 2 Зак. 149

Страница 10

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

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

6.3 Октеты длины

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

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

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

6.3.2    Отправитель должен придерживаться следующих правил:

a)    использовать явный формат (6.3.3), если кодовое представление простое;

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

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

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

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

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

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

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

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

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

c)    двоичное значение 11111 Шг не должно использоваться.

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

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

7

Страница 11

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

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

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

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

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

6.3.4    ! Бит « этого единственного октета должен быть установлен в единицу, а биты с 7 no I должны быть установлены в ноль.

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

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

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

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

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

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

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

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

00    00|*    Отсутствует

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

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

8

Страница 12

ГОСТ Р ИСО'МЭК *823-93

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

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

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

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

0l,o    OI.e    F К„

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

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

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

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

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

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

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

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

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

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

9

Страница 13

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

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

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

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

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

Примечание: — Форма представления чисел в памяти, способ их получения иди обработки отправителями и получателями и форма, используемая в обозначении значения ДСП. 1. не зависят от основания, используемою при оере-лаче.

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

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

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

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

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

M~SXNX2F,

0<F<4,

S- -f 1 или —1.

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

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

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

10

Страница 14

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

Сити в и 5

Оено**н1»е

00

2

01

к

10

16

1!

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

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

J0.5.4 Биты 2 и I первого октета содержимого определяют формат кодового представления порядка:

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

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

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

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

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

Примечания

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

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

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

И

Страница 15

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

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

Биты с 6 ло !

Спосой представления число

00 0001

Форма NRI ИСО 609-3

00 OOJO

Форма NR2 ИСО 6093

00 ООН

Форма NR3 ИСО 6003

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

Примечания

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

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

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

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

01000000    Значение* PLUS—INFINITY

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

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

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

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

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

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

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

12

Страница 16

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

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

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

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

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

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

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

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

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

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

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

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

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

13

Страница 17

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

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

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

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

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

0316    07,„    040ЛЗВ5Г291С0016

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

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

23,6    80,в

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

03,«    03,в    ОООАЗВ,*

03,*    05,в    045F291CD0.6

Признак конца содержимого Длина

00,в    00je

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

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

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

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

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

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

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

Страница 18

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

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

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

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

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

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

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

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

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

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

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

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

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

05|*    00:в

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

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

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

15

Страница 19

I ОСТ P ИСО/МЭК ЯЯ25-93

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

Пример — Значение {name «Smith*, ok TRUE)

типа

SEQUENCE {name IA5String, ok BOOLEAN}

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

30i6    0А|6

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

16|б    05|в    «Smith»

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

01|в    01,4    FF |в

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

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

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

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

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

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

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

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

16

Страница 20

гост р исомэк was—ю

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

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

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

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

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

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

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

Примечания

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

2    Тег. используемы А в октоах июктификаторз, является тегом выбранного типа, в соответствии с определением выборочного типа в нотации ACH I.

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

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

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

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

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

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

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

Страница 21

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

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

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

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

Туре! VisibleString

Туре2APPLICATION 3] IMPLICIT Typel

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

Type4 ::=> APPLICATION 7J IMPLICIT ТуреЗ

Type5 ::=*[2] IMPLICIT Type2

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

— для типа Typel:

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

1 А,в    05,6    4A6F6E6573,e

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

[APPLICATION 3]

Длина Содержимое 4AGF6E6573,*

43,в    05„

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

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

А2,в    07

(APPLICATION 3J 43..

Длина

05,в

Длина 07,с Дли на 05.4

Содержимое

4A6F6E6573,*

Содержимое

Содержимое

4A6F6E6573,6

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

[APPLICATION 7]

67|б

(APPLICATION 3]

43,6

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

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

82,в    05,в    4A6F6E6573,e

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

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

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

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

18

Страница 22

ГОСТ Г ИСО/МЭК ««25-95

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

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

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

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

(Х*40) -i- К,

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

Примечание — Эго «улакоаанкое* представление двух первых компо-ненюв идетпификаюра объекта возможно а силу toro,    то    выделено    лишь    три

значения для ребер, выходящих ил норненой вершины,    н    не    более    39    последую

щих значений — для вершин, соответствующих д»-0 и .V~l.

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

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

{joinl-iso-ccitt 100 3}, которое в другой форме записывается в виде

{2    100    3},

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

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

06,в    03    813403,6

19

Страница 23

ГОСТ f> ИСО МЭК R825-93

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

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

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

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

(UNIVERSAL х j IMPLICIT OCTET STRING

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

23.4    Если рассматриваемый тип «строка знаков» определен в

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

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

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

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

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

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

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

20

Страница 24

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

Таблица 2

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

Тиа

Пр«апо.ига-еиый пхбор QO < регистра-

ЦИОКМЫ»

ПрвАПожга-rut/Й (М<||>7 OU (1>егист|>»-IUон null

номер}

Предполагаемы» Емвосдедиилельиости и серенад регистра lec.ni применяются^

Разрешаются ли яимые F.m-nocледова-тдеьмосга?

NumcncString

2

л ,

esc т 4/0 ISO

НЕТ

PrinlableSlring

2

_

F.SC 2/8 4/0 LSO

НЕТ

TeletexSlring

(TSkStrina)

102

10б(С0) 107 (Cl)

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

ДА

VideotexStrlng

102

I (СО) 71 (Cl)

ESC 2/8 7/5 LSO ESC 2/1 4,'0 ESC 2/2 4/1

ДА

VisibleString

|IS0646String)

2

ESC 2/8 4/0 LSO

НЕТ

IA5String

2

НСО)

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

НЕТ

GraphicString

2

ESC 2/8 4/0 LSO

ДА

GeneralString

2

коо)

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

ДА

Примечание — Многие из часто используемых знаков (например, от А до 7.) входит в несколько знаковых репертуаров с различными регистрационными номерами н К$с-посл1-добаг*льиостями. В тех случаях, когда строка знаков относится к типу, для которого разрешаете* использование Esc-поеледоиатель-костей, возможно несколько различных способов его кодирования 1см, -также 5.3.).

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

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

<Jones*

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

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

I А|б    05,e    4A6F6E6573ie

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

21

Страница 25

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

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

ЗАц    09|б

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

04,«    03    4A6F6E,6

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

04 |б    02|в    6573]®

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

ЗЛ|«    80ie

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

04,6    03,«    4A6F6F.,*

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

04    02,*    6573,в

Конец содержимого Длина 00,в    00,6

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

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

ТИПОВ АСН. I

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

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

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

Примечание — Все 1ак»е строки оккгов яэ.шю1Ся одномчачно иигер-премнругмычн о рамкэл одного типа АСН 1. При чередовании кодовых представлений тначсннЛ различных типок однозначность может н«; сохраняться.

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

22

Страница 26

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

{joint-iso-ccitt asnl (1) basicencoding (1)} и описатель объекта

«Basic Encoding of a single ASN. ! type»

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

Примечание — В частности, »тот идентификатор правил кодирования может быгь задай в поле «мы* синтаксиса передачи», определенном в протоколе >ровня представления (ГОСТ 34.972).

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

23

Страница 27

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

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

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

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

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

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

определенной в ГОСТ 34.073.

PersonnelRccord    (APPLICATION 0J IMPLICIT SET

(    Name,

Utle    [0] VisibleSfring.

number    EmployeeNumber,

dat«fOfHire    111    Dale,

nameOf Spouse (21 ' Name,    •    .

children    [3}    IMPLICIT SEQUENCE OF

Chlldlnformation DEFAULT { } }

Chlldlnformation SET

{    .    Name

dateOfBirlb    (01    Dale }

Name (APPLICATION 1) IMPLICIT SEQUENCE-(givenNamc    VisiblcString.

initial    VlsibleStrlng,

familyNan»    VisiblcString >

EmployrcNumber::- (APPLICATION 2] IMPLICIT INTEGER Date::- (APPLICATION 3] IMPLICIT VisiblcString---YYYYMMDD

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

Ниже приведено значение записи учета кадров для служащего по имени John Smith, определенное с поиошыо нотации АСН !.

{ {givenNamc «John», initial «Р», familyName «Smith» }, title «Director* nimber 51

dateOiHire «19710917»

nameOiSprouse {givenNaine «Магу», Initial <T>, familyName «Smith» },

■ children

{({give.iName «Ralph*, initial «Т», familyName «Smith»}, dateOIBirth «19571111» ).

(IgivenName «Susan», initial «В», familyName «Jones»}, dateOfBirth «19590717» }>}

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

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

24

Страница 28

ГОСТ Р ИСО;МЭК Ш5—93

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

Personnel Record Длина

60

Содержимое 8185

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

Name

61

10

VisiblcSUing Длина 1'А    04

Содержимое

«John»

Содержимое

«Р»

Содержимое

«Smith»

Содержимое

«Director*

VisibleString Длина 1Л    01

VisibleStrlng Длина 1А    05

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

Title

08

Employee Number Длина 42

Date of Hire ЛI

Содержимое

3

01

Содержимое

Длина 0A

Содержимое

«19710917*

Date Длина 43    08

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

Name of

Spouse

Л2

Name Длина 61 10 YistbleString IА

Содержимое

Длина

04

Длина

01

Длкиа

05

Содержимое

«Магу»

Содержимое

«Т*

Содержимое

«Smith»

VisiblcStTing 1Л

VisibleSirlnR 1Л

[31

АЗ

Длина

42

Set

31

Содержимое

Содержимое

Длина

IF

Name

61

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

II

VisihleSlring Длина Содержимое 1А    OS «Ralph»

VisibleString Длнна Содержимое IA    01    «Т*

VisibleStnnu Длина Содержимое 1А    05 «Smith»

Date о!

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

AO    0А

Date Длина Содержимое 43    08    «19571111»

25

Страница 29

ГОСТ Р НСО МЭК &825-ft3

Set    Длим Содержимое

31    IF

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

61    II

VisibleString Длина Содержимое 1А    05 «Susan»

VbibleStrlng Длина Содержимое IА    01'    «В*

VisibleString Длина Содержимое IА    05 «Jones»

Dale of

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

АО    ОА

Dale Длина Содержимое 43    08    «19590717»

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

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

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

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

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

25.2 (joint iso ccitt asnl (I) basic-encoding (1) J «Basic Encoding of a single ASN. 1 type»

Страница 30

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

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

ПОЯСНЕНИЕ К КОДОВОМУ ПРЕДСТАВЛЕНИЮ ЗНАЧЕНИЯ «ДЕПСТВИТЕЛЬНОГ ЧИСЛО»

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

Ь8

Ы

I

Ь8

Ы

ТТЛ ПТ

1

ТТЛ

...

1

«снтисса

Окптетб

Октет! Октуп5

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

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

I S bb ff сч- Октеты для К Октеты для N где «$* {знак мантиссы) зависит от преобразуемого значения, «Ы>» — фиксированное значение (например. 10) для представления основания (в нашем случае мы будем предполагать, что основание равно 16). «И» — фиксированное -значение, вычисляемое как описано в С.З, и «ее» — фиксированная длина порядки, вычисляемая как описано в С.4 (а данном приложении не рассматривается случай, когда для Е требуется более трех октетов)

С.З Алгоритм передает октеты с I по 5 аппаратного представления, после установки .в «О» битов с 8 по 3 октета I и бит с 4 но 1 октета 5, как значение N. В аппаратном представлении запятая предполагается между битами 2 и I октета !. который содержит значение Е. Эта предполагаемая пЬзнция может быть сдвинута в "ближайшую позицию за окончанием октета 5 уменьшением значения Е перед передачей. В нашем примере мы можем сдвинуть запятую на четыре бита при каждом уменьшении на единицу значения порядка {поскольку предполагается основание 16), так что уменьшение порядка на 9 поместит предполагаемое положение запятой в позицию между 6 и 5 битами октета 6 Таким образом значение М будет равно NX21 для правильной установки запятой а М. (Предполагаемое положение запятой н N после передачи октетов — после бита 1 октета 5). Таким образом, мы имеем критические параметры:

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

27

Страница 31

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

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

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

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

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

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

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

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

11101110. если значение отрицательное

или

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

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

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

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

a)    проверяем первый октет содержимого; если он равен J МОИ 10 или

10101Ы0. то переданное значение допускает представление в нашей аппаратуре, и мы можем применить алгоритм, обратный передающему алгоритму. .    -

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

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

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

м

4

Страница 32

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

УДК 681.324:006.354    П85

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

ОКСТУ 4002

Редактор П. П. Огурцов Технический редактор О. //. Пруткова Корректор Е. Ю. Гебрук

Сдано * иовор 18 01.94. Пвдл в и*». 09.03.94. Ус», иеч. л. 1.86. Уел. кр-огг. 1.86. У*.'Изд. л I.W Тир. 400 »к>. С *07*.

Ордена «Зи*к Почета» Им«'«льспо стаид*ртО«. 107076. Моско*. Кадоде.чий вер,. 14, К*л}жс*в* типограф** стандартов. ул. московская. J5& 3»к. |«*

29