ГОСТ Р ИСО/МЭК 8825-2-2003
9.5.3 Каждая часть, упомянутая и 9.5.2. порождает:
а) либо вырожденное поле (null), либо
в) битовое поле, либо
г) выровненное по октету битовое поле, либо
д) список полей, который может содержать либо битовые поля, либо выровненные по октету
битовые поля, либо те и другие.
9.6 Колируемые типы
9.6.1 Дальнейшие разделы специфицируют кодирование следующих типов в списках полей:
булевского, целочисленного, перечислимого, действительного, «битовая строка*, «строка октетов»,
вырожденного, «последовательность», «последовательность-из*, «множество*, «множество-из», вы
борочного, открытого, «идентификатор объекта», «относительный идентификатор объекта*, «встро-
еиное-здп*, внешнего, ограниченных и неограниченных типов символьных строк.
9.6.2 Тип ANY. определенный в ГОСТ Р ИСО/МЭК 8824—93, должен кодироваться как от
крытый тип.
9.6.3 Селективный тип должен кодироваться как выбранный тип.
9.6.4 Кодирование тегированных типов не включено в настоящий стандарт, так как, кроме
исключений в9.2, тегирование невидимо в модели типа и значения, используемой для данных правил
кодирования. Тегированные типы кодируются в соответствии с кодированием типа, который был
тегирован.
9.6.5 Следующие «полезные типы» раздела 40 ГОСТ Р ИСО/МЭК 8824-1 должны кодировать
ся так, как если бы они были заменены своими определениями по ГОСТ Р ИСО/МЭК 8824-1:
- обобщенное время;
- всемирное время;
- описатель объекта.
Ограничения на полезные типы не являются видимыми для PER.
Ограничения на кодирование типов обобщенного и всемирного времени, установленные в CER
и DER (ГОСТ Р ИСО/МЭК 8825-1, 11.7 и 11.8). должны применяться и здесь.
10 Процедуры кодирования
10.1 Создание полного кодирования
10.1.1 Список палей, полученный в результате применения настоящего стандарта к самому
внешнему значению, должен использоваться для создания полного кодирования значения абстракт
ного синтаксиса следующим образом: каждое поле в списке рассматривают поочередно и присоеди
няют (с предшествующими дополнительными нулевыми битами заполнения) к концу битовой
строки, которая должна образовать полное кодирование значения абстрактного синтаксиса.
10.1.2 В варианте UNALIGNED настоящих правил кодирования все поля должны быть сцеп
лены без заполнения. Если результат кодирования самого внешнего значения является пустой
битовой строкой, то битовая строка должна быть заменена единственным октетом со всеми битами,
равными 0. Если результат является непустой битовой строкой и не кратен восьми битам, то к строке
должны быть добавлены нулевые биты (не более семи) для кратности восьми.
10.1.3 В варианте ALIGNED настоящих правил кодирования все битовые пазя в списке палей
должны быть сцеплены без заполнения, а все выровненные по октету битовые пазя должны был,
сцеплены после присоединения (от нуля до семи) нулевых битов для получения длины кодирования,
кратной восьми битам. Если результат кодирования самого внешнего значения является пустой
битовой строкой, то битовая строка должна быть заменена единственным октетом со всеми битами,
равными 0. Если результат является непустой битовой строкой и нс кратен восьми битам, то к строке
должны быть добавлены нулевые биты (не более семи) для кратности восьми.
Г1ри м еч а н и е —Кодирование самого внешнего значения является пустой битовой строкой, если,
например, значение абстрактного синтаксиса яилястся вырожденным типом или ограниченным до единствен
ного значении целочисленным типом.
10.1.4 Результирующая битовая строка яиляется полным кодированием значения абстрактного
синтаксиса.
10.2 Поля открытого типа
10.2.1Язя кодирования полей открытого типа значение фактического типа, занимающее
поле, должно быть закодировано в списке полей, который затем должен быть преобразован в полное
10