ГОСТ Р ИСО/МЭК 8825-2-2003
А.1.4.2 Двоичное представление
Для облегчения чтения данных в двоичном представлении использованы пустые строки для группировки логически связанных полей (обычно это пары длина/значение); для разделения полей использован конец строки; для выделения символов в символьной строке использован пробел; точка (.) отмечает границу октета; ’х’ представляет нулевой бит, использованный для заполнения последнего октета до границы октета.
1 Битовая карта = 1 указывает, что есть «children»
0000010.0 Длина name.givenName = 4 1001010.1101111 1.101000 11.01110 name.givenName = «John»
000.00001 Длина name.initial = 1
101.0000 name.initial = «Р»
0000.0101 Длина name.familyName = 5
1010.011 11011.01 110100.1 1110100 .1101000 name.familyName = «Smith»
0.0000001 Длина number = 1
0.0110011 number = 51
0.0001000 Длина title = 8
1.000100 11.01001 111.0010 1100.101 11000.11 111010.0 1101111 .1110010 title = «Director»
0.0001000 Длина dateOfflire = 8
0.110001 01.11001 011.0111 0110.001 01100.00 011100.1 0110001 .0111111 dateOfflire = «19590717»
0.0000100 Длина nameOfSpouse.givenName = 4
1.001101 11.00001 111.0010 1111.001 nameOfSpouse.givenName = «Mary»
00000.001 Длина nameOfSpouse.initial = 1
10101.00 nameOfSpouse.initial = «Т»
000001.01 Длина name.OfSpousefamilyName = 5
101001.1 1101101 .1101001 1.110100 11.01000 nameOfSpouse .familyN ame = «Smith»
000.00010 Количество «children»
000.00101 Длина children [0]. givenName = 5
101.0010 1100.001 11011.00 111000.0 1101000 children [0]. givenName = «Ralph»
.00000001 Длина children [0]. initial = 1
.1010100 children [0]. initial = «Т»
0.0000101 Длина children [0]. familyName = 5
1.010011 11.01101 110.1001 1110.100 11010.00 children [0]. familyName = «Smith»
000010.00 Длина children [0]. dateOfBirth = 8
011000.1 0111001 .0110101 0.110111 01.10001 011.0001 0110.001 01100.01 children [0]. dateOfBirth = «19571111»
000001.01 Длина children [1]. givenName = 5
101001.1 1110101 .1110011 1.100001 11.01110 children [1].givenName = «Susan»
000.00001 Длина children [1]. initial = 1
100.0010 children [1]. initial = «В»
0000.0101 Длина children [1]. familyName = 5
1001.100 11011.11 110111.0 1100101 .1110011 children [1]. familyName = «Jones»
0.0001000 Длина children [1]. dateOfBirth = 8
0.110001 01.11001 011.0101 0111.001 01100.00 011011.1 0110001 .01101118 children [1]. dateOfBirth = «19590717»
A.2 Запись, которая использует ограничения подтипа
Это тот же самый пример, который показан в разделе А.1, за исключением того, что в нем использована нотация подтипа для наложения ограничений на некоторые элементы.
А.2.1 Описание АСН. 1 структуры записи
Ниже формально описана структура гипотетической персональной записи с использованием АСН. 1, специфицированной в ГОСТ Р ИСО/МЭК 8824-1 для определения типов.
PersonnelRecord :: = [APPLICATION 0] IMPLICIT SET { name Name,
title [0] VisibleString,
number EmployeeNumber,
31