【发布时间】:2015-07-11 22:51:31
【问题描述】:
我正在将浮点数写入文件,但有两种不同的方式来写入这些数字,我想知道使用哪种方式。
两个选择是:
- 将原始代表位写入文件
- 将数字的 ascii 表示形式写入文件
选项 1 对我来说似乎更实用,因为我将每个浮点数截断为 4 个字节。并且在阅读时可以完全跳过解析每个数字。但在实践中,我只见过使用选项 2。
有问题的数据是 3D 模型信息,其中小文件大小和快速读取可能非常有利,但同样,据我所知,没有现有的 3D 模型格式可以做到这一点,我想这背后一定有充分的理由.
我的问题是,有什么理由选择写出数字的形式而不是位表示?有没有更喜欢使用二进制形式的情况?
【问题讨论】:
-
不确定这是否是主要原因,但一个原因是您不必担心机器之间的endianness 不同。
-
以二进制形式编写以供计算机高效使用,以文本形式编写以供人类高效使用(例如,调试)。
-
as a floating point number will always consume a fixed number of bytes, and only 4 at that.错误。更糟糕的是,尺寸只是众多问题之一。 -
@deviantfan - 抱歉,我不应该像一般情况下那样写。但在我的情况下,它总是写为 4 个字节,截断任何额外的精度
标签: c++ file 3d numbers file-writing