ГОСТ Р ИСО/МЭК 8825-2-2003
длины в шие полуограниченного целого числа к списку полей с последующими значениями
компонентов. Во втором случае длина и значение должны быть закодированы так, как если бы
маркер расширения отсутствовал.
19.5 Если количество компонентов фиксировано (ub = lb) и ub < 64К. то для «последопатель-
пости-из» не должно бытьдетерминантадлины, а поля каждого компонента должны быть по порядку
добавлены к списку полей «поеледовател ьности-из».
19.6 В противном случае должны использоваться процедуры 10.9 для добавления списка полей,
порожденных п компонентами, с предшествующим детерминантом длины, равным п компонентам, в
виде ограниченного целого числа, если ub установлена, или в виде полуограниченного целого
числа, если ub не установлена, lb устанавливается так. как определено выше.
Примечав и я
! Процедуры фрагментации могут применяться посте 16К. 32К. 48К или 64К компонентов.
2 Точки разрыва для фрагментации находятся между полями. Число битов до точки разрыва необяза
тельно кратно восьми.
20 Кодирование типа «.множество*
Тип «множество* должен иметь в «RootConiponentTypeList* элементы, отсортированные в
каноническом порядке, определенном ГОСТ Р ИСО/МЭК 8824-1. 8.4, и, кроме того, для опреде
ления порядка кодирования компонентов, когда один или несколько компонентов являются неле-
гировамными выборочными типами, каждый нетегированный выборочный тип упорядочивается так,
как если бы у него был тег, равный наименьшему тегу в «RootAltemativeTypeList* этого выборочного
типа или в любом вложенном нетегированном выборочном типе. Элементы множества, которые
встречаются в «RootConiponentTypeList». должны быть закодированы так, как если бы они были
значением типа «последовательность». Элементы множества, которые встречаются в «ExtensionAd-
ditionList*, должны быть заколиропаны гак, как если бы они были компонентами типа «последова
тельность*, как определено в 18.9 (т. е. они кодируются в том порядке, в каком были определены).
П р и м е р — В следующем примере, где подразумевается среда тегирования IMPLICIT TAGS:
A :: = SET
a |3| INTEGER,
b 111CHOICE
{
c 121 INTEGER
d |4J INTEGER
К
e CHOICE
{
f CHOICE
<
g |5| INTEGER,
h |6| INTEGER
},
i CHOICE
<
j |0| INTEGER
J
1
)
компоненты множества всегда будут кодироваться в порядке е, Ь, а. так как теги сортируются в
порядке |0|, |1|. |3|.
21 Кодирование типа «множество-из»
21.1Для CANONICAL-PER кодирования значений компонентов типа «множество-нз» долж
ны появляться в возрастающем порядке; кодирования компонентов сравниваются как битовые
строки, заполненные пулевыми битами до Гранины октета.
22