gpt4 book ai didi

c++ - 将 4 个原始字节转换为 32 位 float

转载 作者:太空狗 更新时间:2023-10-29 19:48:22 24 4
gpt4 key购买 nike

我正在尝试从 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);

演示:http://ideone.com/riDfFw

关于c++ - 将 4 个原始字节转换为 32 位 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26310249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com