【发布时间】:2015-01-27 08:37:04
【问题描述】:
对不起,我的英语不好。我有一个十进制数:0.15625。
(这是示例)http://www.strozhevsky.com/free_docs/asn1_in_simple_words.pdf(第 5 页)
根据 BER ASN.1 的规则 - 以八进制编码:09 03 90 FE 0A(这是正确的决定)
http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf - 标准 ASN.1(8.5 - REAL)
1 字节:
(8-7) Class - Universal - 00
(6) P/C - Primitive - 0
(5-1) Tag Number - 01001(REAL)
总计:00001001(2) = 09(16)(正确)
2 字节:
(8) binary encoding - 1
_____________________
(7) When binary encoding is used (bit 8 = 1), then if the mantissa M is
non-zero, it shall be represented by a sign S, a positive integer value N
and a binary scaling factor F, such that:
M = S × N × 2F
Bit 7 of the first contents octets shall be 1 if S is –1 and 0 otherwise.
What I would have bit 7?
_____________________
(6-5) base 8 - 01
_______________________
(3-4) Bits 4 to 3 of the first contents octet shall encode the value of
the binary scaling factor F as an unsigned binary
integer. I don't have scaling factor. - 00
_____________________
(2-1) 8.5.6.4 Bits 2 to 1 of the first contents octet shall encode
the format of the exponent as follows: I do not know how to determine
what my value will be here. (Poor understand English). I think 11?
总计:1?010011 - 不等于 03 为什么? (不正确)
90是什么?调用八进制?如何找到它?书上没说,还是我根本不懂。
在FE编码数字-2(指数)中,我如何翻译FE,而不是得到254和-2?也许它包含有关字节的信息:90?
感谢您的收听。
【问题讨论】:
标签: c++ c algorithm data-structures asn.1