ГОСТ Р ИСО/МЭК 8825-3—2016
D.1.5 Более сложный объект кодирования для целочисленного типа
D.1.5.1 Присвоения АСН.1 равны:
Positivelnteger ::= INTEGER (1..МАХ)
NegativelntegerINTEGER (MIN..-1)
D. 1.5.2 Присвоениями объекта кодирования являются:
positivelntegerEncoding «Positivelnteger
integerEncoding
negativelntegerEncoding «Negativelnteger ::=
integerEncoding
D. 1.5.3 Значения типов «Positivelnteger* и «Negativelnteger» кодируются объектом кодирования
«integerEncoding* в виде положительного целого числа или целого числа с дополнением до двух соответственно.
Это определяется ниже и обеспечивает разные кодовые последовательности в зависимости от границ типа, к ко
торому это применяется.
D.1.5.4 Объект кодирования «integerEncoding». определенный здесь, является очень мощным, но довольно
сложным. Он содержит пять обьектов кодирования класса «CONDITIONAL-INT: все они определяют кодирование,
выровненное по октетам. Когда кодируемые целочисленные значения имеют границы, число битов будет фиксиро
ванным; когда значения не имеют границ, тип должен быть последним в PDU, а значение выравнивается вправо в
оставшихся октетах PDU.
D. 1.5.5 Определением этого объекта кодирования (см. 23.6.1 и 23.7.1) является:
integerEncoding «INT(ENCODINGS {
{ IF unbounded-or-no-lower-bound
ENCODING-SPACE
SIZE variable-with-determinant
DETERMINED BY container
USING OUTER
ENCODING twos-complement} .
{ IF bounded-with-negatives
ENCODING-SPACE
SIZE fixed-to-max
ENCODING twos-complement} ,
{ IF semi-bounded-with-negatives
ENCODING-SPACE
SIZE variable-with-determinant
DETERMINED BY container
USING OUTER
ENCODING twos-complement}.
{ IF semi-bounded-without-negatives
ENCODING-SPACE
SIZE variable-with-determinant
DETERMINED BY container
USING OUTER
ENCODING positive-int},
{ IF bounded-without-negatives
ENCODING-SPACE
SIZE fixed-to-max
ENCODING positive-int}}}
D.1.6 Положительные целые числа, закодированные в BCD
D.1.6.1 Этот пример показывает, как кодировать положительное целое число в BCD (Binary Coded Decimal,
двоично-кодированное десятичное число) при помощи последовательных преобразований: из целого числа в це
почку знаков, а затем из цепочки знаков в цепочку битов.
D. 1.6.2 Предисловие АСН.1 равно:
PositivelntegerBCDINTEGER(O.-MAX)
D. 1.6.3 Присвоением обьекта кодирования (см. 19.4. 24.1 и 23.4.1) является:
169