【发布时间】:2015-03-23 12:12:51
【问题描述】:
浮点值(IEEE 32 和 64 位)使用编码 固定长度的大端编码(7 位用于避免使用保留的 0xFF 等字节):
这些段落来自Smile Format spec(一种类似于 JSON 的二进制格式)。
这意味着什么?是否有一些标准方法来编码IEEE floating point(单精度和双精度),以便编码字节在 0-127 范围内?
更笼统地说:我相信,在标准二进制表示中,没有保留或禁止的字节值,IEEE 浮点数可以包含 256 个可能的字节中的任何一个。当然,是否有任何标准的二进制编码(或技巧)以使某些字节值永远不会出现(例如,在字符串的 UTF8 编码中,有一些禁止的字节值,如 0xFF)?
(我猜这意味着要么失去一些精度,要么使用更多字节。)
【问题讨论】:
-
我希望“使用更多字节”而不是“使用更多位”。如果您只使用每字节 7 位,则与使用每字节 8 位相比,您需要更多的字节来适应 64 位。
-
@PatriciaShanahan:嗯,我猜“使用 7 位”实际上意味着将字节限制在 0-127 范围内(将 MSB 保持为零)。但是,是的,最终这意味着使用更多字节。