浮点值的7位编码?

时间:2015-01-24 15:37:51

标签: encoding floating-point

  

浮点值(IEEE 32和64位)使用编码   固定长度的大端编码(7位用于避免使用保留的   字节如0xFF):

这些段落来自Smile Format spec(类似JSON的二进制格式)。

这意味着什么?是否有一些标准方法来编码IEEE floating point(单精度和双精度),以便编码的字节在0-127范围内?

更一般地说:我认为,在标准二进制表示中,没有保留或禁止的字节值,IEEE浮点数可以包括256个可能的字节中的任何一个。当然,是否有任何标准的二进制编码(或技巧),以便一些字节值/ s永远不会出现(例如,在字符串的UTF8编码中,一个有一些禁止的字节值,如0xFF)?

(我想这意味着要么失去一些精度,要么使用更多的字节。)

1 个答案:

答案 0 :(得分:2)

我不知道这种格式的细节,但它看起来像是一种数据结构的序列化。当然,由于最终结果是字节流,您应该能够识别来自其​​他元数据的值。可能他们将第7位用作特殊位,然后应该避免任何误解字节值。这就是“传播”一个IEEE fp号码(五个,单个)字节的原因,其中只有七个比特实际用于该值。

我应该阅读格式规范,所以我试图“推断”他们将要做的事情。然而,这种编码通常是在低级(例如嵌入式)编程中。