ГОСТ 1» ИСО/МЭК 8825-2-2003
должны быть использованы процедуры 10.9 для добавления этого битового пазя из п битов к списку
полей с предшествующим детерминантом длины, равному п битам, в виде ограниченного целого
числа с lib и lb. равными п.
При ме ча ние — В этом случае ub и 1Ь будут проигнорированы процедурами для шины. Здесь эти
процедуры вызываются для обеспечения фрагментации большой преамбулы. Вероятно, такая ситуация будет
возникать очень редко.
18.4 За преамбулой должны по порядку следовать списки полей каждого присутствующего
компонента из значения последовательности.
18.5 Для CANONICAL-PER всегда должны отсутствовать кодирования компонентов, отмечен
ных как DEFAULT, если значение, которое должно быть закодировано, является значением по
умолчанию. Для BASIC-PER всегда должны отсутствовать кодирования компонентов, отмечешгых
как DEFAULT, если значение, которое должно быть закодировано, является значением по умолча
нию язя простого типа (см. 3.7.25). в противном случае значение должно быть закодировано только
тогда, когда оно явно присутствует в абстрактном значении последовательности.
18.6 Этим завершается кодирование, если бит расширения отсутствует или равен нулю. Если
бит расширения присутствует и равен единице, то применяются следующие процедуры.
18.7 Обозначим количество расширяющих дополнений в кодируемом типе п. Тогда для добав
ления к списку полей должно быть создано битовое поле с п битами. Биты этого поля, взятые по
порядку, должны кодировать наличие или отсутствие кодирования каждого расширяющего допол
нения в кодируемом типе. Значение бита 1 соответствует присутствию, а значение бита 0 — отсут
ствию кодирования расширяющего дополнения. Головной бит в этом поле кодирует наличие или
отсутствие первого расширяющего дополнения, а завершающий бит — наличие или отсутствие
последнего расширяющего дополнения.
18.8 Должны быть осуществлены процедуры 10.9 язя добавления этого битового поля из п
битов к списку полей с предшествующимдетерминантом длины, равным п, в виде обычно мятенькой
длины.
П р и м е ч а н и е —п не может быть нулем, так как зга процедура вызывается только тогда, когда есть
по крайней мерс одно кодируемое расширяющее дополнение.
18.9 Дязее следуют списки полей, содержащие по порядку кодирования каждого присутству
ющего расширяющего дополнения. Каждое расширяющее дополнение, являющееся «С’отро-
nentType* (т. е. не «ExtensionAdditionGroup»), должно быть закодировано так, как если бы оно было
значением поля открытого типа, как определено в 10.2.1. Каждое расширяющее дополнение, являю
щееся *ExtensionAdditionGroup*, должно быть закодировано как последовательность в соответствии с
18.2—18.6, которая затем колируется так. как если бы она была значением поля открытого типа, как
определено в 10.2.1. Если все компоненты значений «ExtensionAdditionGroup* отсутствуют, го
•ExtensionAdditionGroup* кодируется как отсутствующее расширяющее дополнение (т. е. соответст
вующий бит в описанном в 18.7 битовом поле должен быть равен 0).
19 Кодирование типа «последовательность-из»
19.1 Видимые язя PER ограничения могут относится к числу компонентов типа «последова
тельность-из*.
19.2 Обозначим максимальное (с улетом видимых для PER ограничений) количество компо
нентов в«последовательности-из* ub. а минимальное — 1Ь. Если не существует конечного максимума
или ub > 64К, то говорят, что ub не установлена. Если не существует ограничения на минимум, то
1Ь имеет нулевое значение. Обозначим число компонентов в фактически кодируемом значении
«последовательности-из* п.
19.3 Кодирование каждого компонента «последовательности-из* будет генерировать ряд
полей, которые добавляются к списку полей язя типа «последовательность-из».
19.4 Если есть видимое язя PER ограничение и в нем присутствует маркер расширения, то к
списку полей в битовом поле длины должен быть добавлен один бит. Он должен быть равен 1, если
число компонентов в данном кодировании не находится в пределах диапазона корня расширения, и 0
- в противном случае. В первом случае должны использоваться процедуры 10.9 для добавления
21