q и другие типы, которые включают, например, тип CHOICE (выбор).
При записи операций присвоения в ASN.1 используется символ ::=. Этот же символ используется при создании новых типов.
Например,
My-type-1 ::= INTEGER
My-type-2 ::= SEQUENCE{
first-item INTEGER,
second-item BOOLEAN}
My-type-1 ::= 125
My-type-2 ::= {first-item 201, second-item true}
эквивалентно определениям, принятым в C:
typedef My-type-1 int;
typedef struct
{
short first-item;
boolean second-item
} My-type-2;
Каждый тип ASN.1, кроме CHOICE, имеет тег (признак, идентифицирующий тип), который состоит из класса и неотрицательного номера тега (кода признака). Два типа ASN.1 считаются одинаковыми только тогда, когда их теги одинаковы.
В таблице приведены некоторые типы универсального класса ASN.1 и номера их тегов.
ТИП |
Номер тега |
Комментарий |
BOOLEAN |
1 |
логический |
INTEGER |
2 |
целый |
BIT STRING |
3 |
строка битов |
OCTET STRING |
4 |
строка октетов |
NULL |
5 |
вырожденный тип |
OBJECT IDENTIFIER |
6 |
идентификатор объекта |
ENUMERATED |
10 |
перечисление |
SEQUENCE |
16 |
последовательность |
BOOLEAN
Возможны два значения данного типа: true (истина) и false (ложь).
Формат:
VarName BOOLEAN
Пример присвоения:
VarName ::= true
INTEGER
Возможны любые целые значения данного типа: отрицательные, 0 и положительные.
Формат:
VarName INTEGER
Пример присвоения:
VarName ::= 234
BIT STRING
Обозначает произвольную последовательность битов (нулей и единиц). Переменная BIT STRING может иметь любую длину, включая нулевую.
Формат:
Var1Name BIT STRING
Var2Name BIT STRING SIZE ((size))
Var3Name BIT STRING SIZE ((size1..size2))
С помощью необязательного служебного слова SIZE задается ограничение длины строки.
Пример определения переменной:
odb-GeneralData BIT STRING {
allOG-CallsBarred (0),
internationalOGCallsBarred (1),
internationalOGCallsNotToHPLMN-CountryBarred (2),
interzonalOGCallsBarred (6),
interzonalOGCallsNotToHPLMN-CountryBarred (7),
interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),
premiumRateInformationOGCallsBarred (3),
premiumRateEntertainementOGCallsBarred (4),
ss-AccessBarred (5),
allECT-Barred (9),
chargeableECT-Barred (10),
internationalECT-Barred (11),
interzonalECT-Barred (12),
doublyChargeableECT-Barred (13),
multipleECT-Barred (14)} (SIZE (15..32))
Здесь с помощью необязательного служебного слова SIZE задается ограничение длины строки.
Пример присвоения
odb-GeneralData ::= {allOG-CallsBarred, ss-AccessBarred}
odb-GeneralData ::= '100001'B
odb-GeneralData ::= '21'H
OCTET STRING
Тип OCTET STRING обозначает произвольную последовательность октетов. OCTET STRING может иметь любую длину, включая нулевую.
Формат:
Var1Name OCTET STRING
Var2Name OCTET STRING (SIZE (size))
Var3Name OCTET STRING (SIZE (size1..size2))
С помощью необязательного служебного слова SIZE задается ограничение длины строки.
Пример определения переменной
imsi OCTET STRING (SIZE (3..8))
Пример присвоения
imsi ::= '52009300105100f7'H
NULL
NULL - вырожденный тип. Используется для обозначения отсутствия какого-либо значения. Этот тип имеет единственное вырожденное значение NULL.
Формат:
VarName NULL
Пример определения переменной
ho-NumberNotRequired NULL
Пример присвоения
ho-NumberNotRequired ::= NULL
OBJECT IDENTIFIER
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.