- X.690 “信息技术 - ASN.1编码规则:基本编码规则(BER),典型编码规则(CER)和区分编码规则(DER)的规范”
特别地,§8.5.6.4(d),关于REAL值的用可变长度尾数和指数的二进制编码,内容如下:
“如果位2至1是11,那么第二个c ontents八位位组编码的八位位组第数,X说,(为一个无符号二进制数)用于编码指数的值,和所述第三至(3 X加)(含)内容八位字节将指数的值编码为二进制补码二进制数; 的值X应至少有一个; 所发送的指数的1到9位不得全零或全1。”
这是不一致的,如从八比特组‘第三至(X + 3)[RD]’其实X + 1字节。
是任何人都能够澄清这一段?
我认为它应该阅读或者
” ......那么第二个内容八位编码012小于一个八位字节的数目,X说,... “
或
” ......第三至(X加上2)第二(含)内容字节......”
而且,是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定义的编码(不是数字)。