You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于ASN.1可扩展SEQUENCE的UPER编码逻辑的疑问求助

ASN.1 UPER编码疑问:首字节第三位及扩展位域长度指示符困惑

我定义了如下ASN.1 SEQUENCE类型及对应取值,生成的UPER十六进制编码为E070180018000A。经多款开源及商用编解码器验证,编码开头逻辑一致,但对照X.691规范我无法理解:

首字节为1110 0000,按我的理解,第一位是扩展附加存在标志,第二位是布尔值a(TRUE),但第三位的1来源不明。根据规范,接下来应为扩展附加位域的短整数长度指示符,因我认为扩展附加数量是3,该位应为0(表示位域长度小于64位),但所有实现中该位均为1。

补充说明:
第二字节为0111 0000,若按仅存在2个扩展附加的说法,我仍困惑于扩展位域的长度指示符应如何确定。

Schema及取值

G ::= SEQUENCE {
            a BOOLEAN,
            ...,
            [[
            b BOOLEAN
            ]],
            [[
            c BOOLEAN
            ]],
            ...,
            d BOOLEAN
          }

value ::= G {
  a TRUE,
  b TRUE,
  c TRUE,
  d TRUE
}

编码(十六进制):

E070180018000A

内容的提问来源于stack exchange,提问作者XAMPPRocky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:05:00