首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASN.1实二进制基2编码尾数规范化

ASN.1实二进制基2编码尾数规范化
EN

Stack Overflow用户
提问于 2022-06-25 15:47:43
回答 1查看 70关注 0票数 0

我试图使用C++以二进制2基形式对真实数据进行编码。用下面的算法计算尾数和指数。

样本数据= 32.3125

  1. 利用C++ std::frexp函数,提取double尾数和int指数。尾数6
  2. Convert,0.5048828125指数,尾数乘以2,减指数1,得到整数尾数。尾数-4
  3. Finally指数09 04 80(binary 2 base) FC(exp) 02 05(mantissa)

数据编码为09 04 80(binary 2 base) FC(exp) 02 05(mantissa)

这个编码正确吗?在标准(X.690-0207)中,它以不同的形式讨论尾数表示。

8.5.6当使用二进制编码(位8= 1)时,如果尾数M为非零,则它应用符号S、正整数值N和二进制缩放因子F表示,这样:M=S×N×2F。

在规范编码规则和卓越编码规则中,指定了规范化,尾数(除非为0)需要反复移位,直到最小有效位为1。

这是否有必要将尾数转换成这种格式并编码N和F,还是可以像我的示例中那样将F保持为'0‘?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-27 13:21:54

你的编码是正确的。请注意,在X.690 11.3中包含了DER的要求,并且您已经满足了它们(您使用的是基2,尾数为奇数,F= 0)。F != 0仅在使用8或16基数编码时才需要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72755246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档