ГОСТ Р ИСО/МЭК 8825-3—2016
positivelntegerBCDEncoding «PositivelntegerBCD ::= {
USE «CHARS
MAPPING TRANSFORMS»
INT-TO-CHARS
-
Мы превращаем в знаки (например, цепое число 42 становится цепочкой знаков “42”)
-
и кодируем знаки с объектом кодирования "numeric-chars-to-bcdEncoding"
SIZE variable
PLUS-SIGN FALSE}}
WITH numeric-chars-to-bcdEncoding }
numeric-chars-to-bcdEncoding «CHARS ::= {
ALIGNED TO NEXT nibble
TRANSFORMS {{
CHAR-TO-BITS
-
Мы превращаем каждый знак в цепочку
битое
(напршлер. знак "4" становится
-
’0100’В. а
"2"становится
’ООЮ’В)
AS mapped
CHAR-UST { “0”,"1","2”,"3",
"4",“5",“в"
ГГ,
"8",“9"}
BITS-LIST { ’ОООО’В, ’ОООГВ, ‘ООЮ-В. ’ООН’В.
•ОЮО’В. -010ГВ. ’ОНО’В. ’ОНГВ,
•ЮОО’В. ЧООГВ }}}
REPETITION-ENCODING {
REPETITION-SPACE
—
Мы определяем конкатенацию цепснек битое для знаков и добавляем признак конца
-
(наприглер. ’0100В
+
W 10B
становится ’0100 0010 H U B )
SIZE variable-with-determinant
DETERMINED BY pattern
PATTERN bits:’1111’B}}
D. 1.6.4 Положительное число скачала преобразуется в цепочку знаков преобразователем «int-to-chars»,
используя факультативные возможности «переменная длины» и «нет знака плюс», а также факультативную воз
можность по умолчанию «нет заполнения», что дает цепочку, содержащую знаки от «0» до «9». Затем цепочка
знаков кодируется так. что каждый знак преобразуется в комбинацию битов. ’0000’В для «0». ‘0001’В для «1» и т.
д. до ’1001’В для «9». Цепочки битов выравниваются по границе полуоктета и заканчиваются специальной
комбинацией ’1111’В.
D. 1.6.5 Более сложные альтернативы, не показанные здесь, но широко используемые, могут встраивать ко
дирование BCD в цепочку октетов с внешним булевым значением, которое указывает, имеется ли в конце неис
пользуемый полуоктет.
D.1.7 Объект кодирования класса «BITS
D. 1.7.1 Этот пример определяет обьект кодирования класса «BITS (см. 23.2.1) для цепочки битов, которая
выровнена по октетам, заполнена нулями и заканчивается 8-битовым полем, содержащим ’00000000’В (предпо
лагается. что абстрактное значение никогда не содержит восемь последовательных нулей).
D. 1.7.2 Присвоение АСН.1 равно:
Fax ::= BIT STRING (CONSTRAINED BY {—недолжны содержаться восемь последовательных битов нуль -})
D.1.7.3 Присвоением объекта кодирования (см. 23.2.1. 23.13.1 и 23.14.1) является:
faxEncoding «Fax ::= {
ALIGNED ТО NEXT octet
REPETITION-ENCODING {
REPETITION-SPACE
SIZE variable-with-determinant
DETERMINED BY pattern
PATTERN bits:’00000000‘B}}
D. 1.7.4 Этот объект кодирования (класса «BITS) содержит вложенный обьект кодирования класса
«CONDITIONALREPETITION, который указывает механизм и оканчивающую комбинацию.
170