Для определения любых информационных элементов используется правило кодирования BER, при котором каждое значение информационного элемента кодируется тремя полями:
Ø Идентификатор информационного элемента;
Ø Длина поля данных;
Ø Содержимое (данные);
В некоторых случаях к этим 3-м полям может добавляться байт конца данных.
Структура ТЭГа.
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
Класс ТЭГа |
0/1 Р/С |
Номер (код) ТЭГа |
Класс ТЭГа (8,7):
Номер кода ТЭГа (для класса UNI):
Пять младших разрядов достаточно для записи кода, не превышающего 30. Если все пять бит заполнены единицами, то реальное значение кода задается в следующем байте. Причем, каждый следующий байт содержит семь бит данных. Старший бит задается всегда равным единице во всех байтах, кроме последнего.
Поле данныхуказывает, сколько байт занимают данные. Если меньше 128 байт, то их длина может быть указана с помощью одного байта, при этом старший бит равен нулю:
0 |
Если данные занимают больше, чем 128 байт, то первый байт содержит единицу в старшем разряде, остальная часть первого байта указывает, сколько байт содержит поле данных.
Содержимое данных зависит от конкретного типа данных, который задан в ТЭГе.
ПРИМЕР № 1: если задается целое число менее 128, оно кодируется с помощью одного байта.
02 |
01 |
23 |
||
00000010 |
00000001 |
00100011 |
|
|||||
|
|||||
|
|||||
ПРИМЕР № 2: если целое число больше 128, то старший байт передается первым.
Строка битов передается в том виде, в котором она есть, однако существует проблема в том, что поле длины указывает количество байтов, а не битов. Поэтому, первый байт поля данных указывает, сколько бит последнего байта не используется.
Строка бит: 010011111
03 |
03 |
07 |
4F |
80 |
||||
00000011 |
00000011 |
00000111 |
01001111 |
10000000 |
|
|
|
|
|||
|
|||
ПРИМЕР № 3: Идентификатор объекта.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.