ASN.1的类型与类型定义

  1. ASN.1中的类型
    类型是一个非空的值的集合,可以被编码后 传输。
内建数据类型含义
INTEGER全部整数(包括正数和负数)
REAL实数,表示浮点数
ENUMERATED标识符的枚举
BIT STRING比特串
OCTET STRING字节串
NULL只包含一个值NULL,用于传送一个报告或者作为CHOICE类型中某些值

还有一些,我可能用不到,就不赘述了。

组合类型含义
CHOICE在类型中选择(相当于C中的联合)
SEQUENCE由不同类型的值组成的一个有序的结构(相当于C中的结构体)
SET有不用类型的值组成的一个无序的结构
SEQUENCE OF由相同类型的值组成的一个有序的结构(相当于C中的数组)
SET OF由相同类型的值组成的一个无序的结构
  1. 类型定义
    <新类型的名字>::=<类型描述>
    其中:
    <新类型的名字>是一个大写字母开头的标识符;
    <类型描述>是基于内建类型或在其他地方定义的类型。
    如:

      Married ::= BOOLEAN
      Age ::= INTEGER
      Picture ::= BIT STRING
      From ::= SEQUENCE
      {
      	name	PrintableString,
      	age		Age,
      	married	Married,
      	marriage-certificate Picture OPTIONAL
      } 
    

    为了接收方能够正确解码,发送方为每个值的类型附加一个数成为tag,在描述中以**[]**标识。如:

    Afters ::= CHOICE
    {
    cheese	[0] PrintableString,
    desser	[1] PrintableString
    }
    

注意: ASN.1允许递归式的类型分配,但我们应当保证其中包含至少一个非递归的值。
为了准确描述一个类型,我们需要对值的集合进行一定的限制。这用到了子类型约束,在类型后用圆括号进行标识。

Lottery-number ::= INTERGER(1..49)
Lottery-draw ::= SEQUENCE SIZE(6) OF Lottery-number
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值