我该如何解释REAL的ASN.1 BER标准?
我一直在阅读
X.690“信息技术--ASN.1编码规则:基本编码规则(BER)规范,规范编码规则(CER)和可分辨编码规则(DER)”
特别是,§8.5.6.4(d),关于具有可变长度尾数和指数的REAL值的二进制编码,如下所示:
“如果第2位到第1位是11,则第二个内容八位字节编码八位字节的数量,X表示,(作为无符号二进制数)用于编码指数的值,第三个直到(X加3) th(包括)内容八位字节将指数的值编码为二进制补码二进制数;  X的值应至少为1;发送指数的前九位不应全为零或全为1。 “
这是不一致的,因为从“第三个到(X加3)[rd]”的八位字节实际上是X + 1个八位字节。
有人能澄清这一节吗?
我认为它应该读
“......然后,第二个内容八位字节编码比八位字节数少一个,X说,......”
要么
“......第三个到(X加2)和nd(含)内容八位字节......”
并且,X的最小值是1,还是0表示1个八位字节?
附录:如果有人可以向我提供一些不同BER编码值的测试数据(八位字符串及其含义),这将是有用的。
到目前为止我所拥有的是什么
09 00 = 0(零)
09 01 40 = + INF(无穷大)
09 01 41 = -INF
09 08 03 2b 31 2e 30 65 2b 30 =“+ 1.0e + 0”= 1.0(精确十进制)
09 05 80 fe 55 55 55 = 1398101.25(二进制,0x555555 * 2 ^ -2)
我不确定的一个例子是:
? 09 06 83 00 fc 00 00 01 = 0.0625(二进制,0x000001 * 2 ^ -4)?
此外,似乎没有为NaN定义编码(不是数字)。
没有找到相关结果
已邀请:
2 个回复
屉杆绊
所以Content Octet#1 = 1000 0111是0x87 内容八位字节#2 = 0x01(因为X的最小值是1) 内容八位字节#3 = 0x00 内容八位字节#4 = 0x01 内容八位字节#3和#4的指数值为1 (零*一)^一=零
babsoft