c - 在文件中存储 float

标签 c floating-point

对于我正在实现的 C 应用程序,我需要能够读取一组配置值并将其写入文件。这些值是 float 。在未来,另一个应用程序(可以用 C++、Python、Perl 等编写)可能会使用相同的数据,因此这些配置值需要以独立于编译器和机器的明确定义的格式存储.

字节顺序转换函数 (ntoh/hton) 可用于处理 Endianness,但是解决“float”值不同含义的最佳方法是什么?有存储 float 的通用方法吗?舍入和截断不是问题,只要定义好即可。

最佳答案

大概有两个主要的选择:

  1. 以文本格式存储。在这里,您将使用明确定义的小数点分隔符和科学计数法对特定格式进行标准化,即 6.66e42
  2. 使用 IEEE754 标准以二进制格式存储。使用 4 或 8 字节数据类型。正如您所指出的,您必须确定字节序约定。

文本格式可能更便携,因为有些机器本身并不理解 IEEE754。也就是说,这样的机器在这个时代很少见。

关于c - 在文件中存储 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17948357/

相关文章:

c - 如何在KEIL IDE中查找C项目的代码覆盖率?

c - 随机对角二维数组输入

c - 与 malloc/free 相比,使用 C99 VLA 是个好主意吗?

c - 在 Ubuntu 上安装的 TeamCity 服务器上构建 Visual Studio 项目

java - 为具有浮点成员的类实现 "tolerant" `equals` & `hashCode`

c - 设置 setuid 位后程序无法加载

c - 如何处理高位数字的计算?

c - 如何在没有 FPU 的机器上计算 float

python - 16 位二进制转换

c++ - 关于在 C/C++ 中比较整数和 float / double