【问题标题】:ASN.1 value notation : assigning values of different typesASN.1 值表示法:分配不同类型的值
【发布时间】:2013-11-08 17:42:58
【问题描述】:

在 ASN.1 中,某些类型具有相同类型的值表示法。例如,值'ABCD'H 是一个十六进制字符串,可以表示OCTET STRING 类型或BIT STRING 类型。同样,值10 是一个数字,可以是INTEGER 类型或REAL 类型。但是如果我们给一个变量赋值,那么我们可以在一个兼容类型的赋值表达式中使用这个变量吗?

例如:

MySchema DEFINITIONS AUTOMATIC TAGS ::= 
BEGIN

   x OCTET STRING ::= 'ABCD'H
   y BIT STRING ::= x          -- is this valid?

   i INTEGER ::= 10
   r REAL ::= i                -- is this valid?

END

至少 ASN.1 的一种实现在这里给出了错误消息。但我找不到实际标准对此有何评论。

【问题讨论】:

    标签: asn.1


    【解决方案1】:

    不,这是不合法的。您对 y 和 r 的定义分别需要一个 BIT STRING 值和一个 REAL 值。 x 是 OCTET STRING 值(不是词法字符串“'ABCD'H”),i 是 INTEGER 值(不是词法字符串“10”)。

    您可以参考 X.680 16.2 和附录 C 了解更多信息。 16.2 要求:

    在“ValueAssignment”中分配给“valuereference”的值是“Value”,由“Type”管理,并且应该是“Type”定义的类型的值的表示法(如16.3中规定的) )。

    附录 C 讨论类型兼容性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多