我正在尝试从 eeprom 重新构造 32 位浮点值。
eeprom 内存中的 4 个字节 (0-4) 是:B4 A2 91 4D
PC(VS Studio)将其正确重建为 3.054199 * 10^8(我知道应该在那里的浮点值)
现在我正在移动这个eeprom以从8位Arduino读取,所以不确定它是否是编译器/平台的东西,但是当我尝试将4个字节读取到32位双字中,然后将其类型转换为一个 float ,我得到的值还差得远。
假设标准 ansi-c 编译器无法自动完成转换,那么如何手动将 4 个字节解析为 float ?
最佳答案
最安全的方法是使用 memcpy
:
uint32_t dword = 0x4D91A2B4;
float f;
memcpy(&f, &dw, 4);
关于c++ - 将 4 个原始字节转换为 32 位 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57019886/