sdf*_*dfg 4 c binary binaryfiles binary-data
任何人都可以展示如何在 C 中正确地将二进制表示的数据转换为双精度值。例如,我有 8 个无符号字符值要转换为双精度值(让我们将其命名为缓冲区)。所以buffer[0]的0位是LSB,buffer[7]的7位是MSB。预先非常感谢!
如果以下条件全部成立:
sizeof(double) == 8
您可以简单地将 8 个字节读入数组,然后进行强制转换(假设“fd”是打开的文件描述符):
char bytes[8];
fread(&bytes, 8, 1, fd);
double d = *((double*)bytes);
Run Code Online (Sandbox Code Playgroud)
然而,更一般地说,我建议不要像这样保存二进制数据。是的,它曾经很常见,而且很多人仍然这样做,但是对于现代硬件来说,这确实没有必要,并且会导致这样的情况,只有当您的平台与编写它的平台完全匹配时,您才能轻松地反序列化它到磁盘。选择一种可移植格式(如果可以的话,基于人类可读的 UTF-8)并使用它。