ГОСТ Р ИСО/МЭК 8825-2-2003
2 Результатом отсутствия дополнения в случае л, равного нулю, является отсутствие заполнения до
границы октета, когда эти процедуры вызываются для дополнения выровненного по октету битового поля
нулевой длины, если иное нс требуется 10.5.
10.9.3.4 Когда детерминант длины является обычно маленькой длиной и п й 64, к списку полей
должно добавляться однобитовое поле с битом, установленным в 0, а значение л — I должно быть
закодировано как неотрицательное двоичное целое в 6-битовом поле. За этим должно следовать
ассоциированное поле, завершающее эти процедуры. Если л больше 64. то к списку полей должно
добавляться однобитовое поле с битом, установленным в 1, за которым следует кодирование л как
неограниченная детерминанта длины, с последующим ассоциированным полем, согласно процеду рам
10.9.3.5-10.9.3.8.4.
П р и м е ч а н и е —Обычно маленькие длины используются только для указания длины битовых ото
бражений, которые являются префиксами значений расширяющих дополнений типов «множество* или «пос
ледовательность».
10.9.3.5 В противном случае (неограниченная или большая ub) л кодируется и добавляется к
списку полей с последующими ассоциированными полями, как указано ниже.
П р и м е ч а н и е - Нижняя граница !Ь нс влияет на кодирования длины, определенные в 10.9.3.6—
10.9.3.8.4.
10.9.3.6Если л <, 127, то я должно закодироваться как неотрицательное двоичное целое
(используя процедуры 10.3) в битах с 7 (старший значащий) до 1 (младший значащий) единственного
октета, а бит 8 должен быть установлен в нуль. Результат добавляется к списку полей как выров
ненное по октету битовое поле со следующим ассоциированным полем или списком полей, что
завершает эти процедуры.
II р и м е ч а н и е — Например, если следующее значение А имеет длину 4 символа, а значение В имеет
длину 4 позиции:
А :: = IA5String
В ~ Foo (SIZE (4..123456»
то оба значения кодируются с длиной, занимающей один октет, и с первым битом, установленных! в 0, для
указания, что значение длины меньше или равно 127:
0 . 0000100
4сжеолаЛюйМ(мн
ДлинеЗимние
10.9.3.7Если я > 127, но меньше 16К. тогда я должно быть закодировано как неотрицательное
двоичное целое (используя процедуры 10.3) с бита 6 первого октета (старший значащий) до бита I
второго октета (младший значащий) выровненного по октету битового поля длиной 2 октета с битом
8 первого октета, установленным в 1, и битом 7 первого октета, установленным в нуль. Результат
должен быть добавлен к списку полей с последующим ассоциированным полем или списком полей,
что завершает эти процедуры.
П р и мс ч а н ие — Если в примере 10.9.3.6 значение А имеет длину 130 символов, а значение В имеет
длину 130 позиций, тооба значения кодируются с кохшоиентом длины, занимающим 2 октста, с первыми двумя
битами, установленными в 10 для указания значения длины, большей 127, но меньшей 16К:
10
.
00000010000010
1Э0ошшоповАтмицнй
Длина
Эщчвнив
2
10.9.3.8Если я : 16К, то к списку полей должен быть добавлен единственный октет выров
ненного по октету битового ноля с битами 8 и 7. установленными в 1, и с битами с 6 по I.
кодирующими значения 1, 2, 3 или 4 как неотрицательное двоичное целое (используя процедуры
10.8). За этим единственным октетом должна следовать часть ассоциированного пазя или списка
палей, как установлено ниже.
При ме ча ние —Значение битов с 6 по 1офаничено значениями I—4 (вместо теоретических пределов
0—63) для того, чтобы ограничить число элементов, о которых должно быть известно реализации, более
управляемым количеством (64К вместо 1024К).
15