Перейти в оглавлению раздела

Часть XIII

13.2. Простые типы


    Из встроенных типов ASN.1 прежде всего выделяют набор простых типов. К ним относятся: булевский (BOOLEAN), целочисленный (INTEGER), тип "строка битов" (BIT STRING), тип "строка октетов" (OCTET STRING), пустой тип (NULL), перечислимый тип (ENUMERATED), тип "действительное число" (REAL).

    В следующей таблице представлены множества значений данных типов.

BOOLEAN TRUE, FALSE
INTEGER Множество целых чисел
BIT STRING Упорядоченные последовательности из произвольного числа битов
OCTET STRING Упорядоченные последовательности из произвольного числа октетов, где октет - упорядоченная последовательность из восьми битов
NULL NULL
ENUMERATED Заданное множество выделенных значений
REAL Элементы множества действительных чисел

    Абстрактный синтаксис ASN.1 представляет собой средство со строгой типизацией, что требует явного описания используемых типов. Пример определения типа:

    Employed ::= BOOLEAN

    Это определение означает, что множество значений типа Employed состоит из двух значений: TRUE или FALSE.

    Подобным же образом определяется тип для целых значений:

    CheckingAccountBalance ::= INTEGER

    При определении целочисленных типов можно указывать идентификаторы поименованных значений, а также максимальные и минимальные значения:

    DayOfTheMonth ::= INTEGER { first(1), last(31) }

    -- заданы максимальное и минимальное значения

    Тип BITSTRING следует использовать для представления двоичных данных, формат и длина которых не заданы, при этом длина (в битах) не обязательно кратна восьми. Пример:

    G3FacsimilePage ::= BIT STRING

    -- последовательность битов, удовлетворяющая

    -- Рекомендации T.4

    Можно определять битовые последовательности фиксированных размеров, а также определять совокупности логических значений (каждому элементу совокупности соответствует бит последовательности):

    SunnyDaysOfTheMonth ::= BIT STRING { first(1), last(31) }

    -- i-й день солнечный ? i-й бит равен единице

    Тип OCTET STRING по своему назначению полностью аналогичен типу BIT STRING, позволяя представлять двоичные данные, причем длина (в битах) кратна восьми.

    Значения типа REAL включают значения PLUS INFINITY и MINUS INFINITY, вместе с действительными числами, которые могут быть представлены в виде MxBE, где целочисленные M, B, E, соответственно, - мантисса, основание и порядок. B принимает значения 2 или 10, M и E - произвольные целые числа.

    Тип ENUMERATED используется для определения типа с тремя или более выделенными значениями.

    MaritalStatus ::= ENUMERATED

     { single(0), married(1), widowed(2) }



Предыдущая глава Оглавление Следующая глава