相关疑难解决方法(0)

IEEE754浮点值的可移植序列化

我最近一直致力于一个需要存储和加载大量数据的系统,包括单精度浮点值.我决定对整数的网络字节顺序进行标准化,并决定以big-endian格式存储浮点值,即:

  |-- Byte 0 --| |-- Byte 1 -|  Byte 2   Byte 3
  #      ####### #     ####### ######## ########
Sign     Exponent          Mantissa
 1b    8b, MSB first    23b, MSB first
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想提供类似的功能htonl()ntohl(),因为我已经使用这些用于擦拭整数,我也希望有尽可能多的平台独立性尽可能的方式来实现这一点(而假设float类型对应于IEEE754 32位浮点值).有没有办法,可能使用ieee754.h,这样做?

我有一个答案似乎有效,我将在下面发布,但它似乎非常缓慢和低效,我会感谢有关如何使其更快和/或更可靠的任何建议.

c floating-point portability endianness ieee-754

12
推荐指数
1
解决办法
2827
查看次数

标签 统计

c ×1

endianness ×1

floating-point ×1

ieee-754 ×1

portability ×1