ГОСТ Р ИСО/МЭК 8825-2-2003
10.9.3.8.1Для получения счетчика (обозначенного т) значение битов с 6 по 1 (1—4) должно
быть умножено на 16К. Целое число в битах с 6 по 1должно выбираться максимально возможным,
но таким, чтобы содержимое ассоциированного поля или списка полей было больше или равно т
октетам, битам, компонентам или символам соответственно.
П р и ме ч а н и я
1 Нсфрагмснтировлнный вид имеет дело с длинами до 16К. Следовательно, фрагментация обеспечивает
длины до 64К с детализацией до 16К.
2 Если в примере 10.9.3.6 значение 8 имеет длину 144К + I (то есть 64К + 64К + 16К * 1) элементов,
то значение фрагментируется с первыми двумя битами первых трех фрагментов, равными 11. для указания того,
чтодалее следует от одною до четырех блоков по I6K позиций каждый и что сшс один компонент длины будет
следовать за последним блоком каждого фрагмента:
111000100
111000100 84К
ало-
,
макпж
,
В4К111000001
ало-
манта»
,
16К0 |00000011
ало- ало-
манттжИМП
Дгкна
O n c n W f r o
Дгинв
O m n W l P W
Длине
V n t n W W O
Дш наЗначение
10.9.3.8.2 Эта часть содержимого, специфицированная т. должна затем добавляться к списку
полей как:
а) одно выровненное по октету битовое поле из т октетов, содержащее первые т октетов
ассоциированного поля —при измерении длины в октетах, либо
б) одно выровненное по октету битовое поле из т битов, содержащее первые т битов ассоци
ированного поля — при измерении длины в битах, либо
в) список полей, кодирующих первые т компонентами в ассоциированном списке полей —
при измерении длины в компонентах типов «множество-из» или «последовательность-нз», либо
г) одно выровненное по октету битовое поле из т символов, содержащее первые т символов
ассоциированного поля — при измерении длины в символах.
10.9.3.8.3 Затем следует повторно использовать процедуры 10.9 для добавления к списку полей
оставшейся части ассоциированного поля или списка полей с длиной, которая является полуогра-
ниченным целым числом, ранным (л — /и), с «гулевой нижней границей.
П р и м е ч а н и е —Если последний фрагмент, содержащий часть кодируемого значения, имеет длину,
точно кратную 16К. то за ним следует завершающий фрагмент, который состоит из единственного октета
компонента длины, равного 0.
10.9.3.8.4 Добавление к списку полей только части ассоциированного (ых) поля (ей) с повтор
ным применением настоящих процедур названо процедурой фрагментации.
10.9.4(Вариант UNALIGNED) Процедуры для варианта UNALIGNED специфицированы в
10.9.4.1 —10.9.4.2 (процедуры для варианта ALIGNED специфицированы в 10.9.3):
10.9.4.1 Если детерминант длины я, который должен быть закодирован, является ограничен
ным целым числом с диапазоном «range* (ub — lb + I) меньшим 64К. то п должен быть закодирован
как неотрицательное двоичное целое (как определено в 10.3), используя минимальное количество
битов, необходимое для кодирования «range*. Если /г не равен нулю, то за ним должно
следовать ассоциированное поле или список полей, и настоящие процедуры завершаются. Если и
равно нулю, то не должно быть дальнейшего дополнения к списку полей, и настоящие процедуры
завершаются.
П р и меча н и е — Если «range* удовлетворяет неравенству 2я < «range* £ 2lv’ *, то число битов в
детерминанте длины равно т + I.
10.9.4.2 Если детерминант длины п. который должен быть закодирован, является ограничен
ным целым числом, большим или равным 64К, или полуограниченным целым числом, тогда п
должен быть закодирован, как определено в 10.9.3.4—10.9.3.8.4.
11 Кодирование булевского типа
11.1 Значение булевского типа должно быть закодировано как битовое поле, состоящее из
единственного бита.
11.2 Бит должен быть равен 1 для TRUE и 0 —для FALSE.
11.3 Битовое поле должно быть добавлено к списку полей без детерминанта длины.
16