gpt4 book ai didi

c - 我的 float 值与我在 C 中的值不匹配

转载 作者:太空狗 更新时间:2023-10-29 15:13:44 25 4
gpt4 key购买 nike

我正在尝试将电路板与覆盆子连接起来。我必须通过 modbus 向开发板读取/写入值,但我不能像开发板那样写入浮点值。

我正在使用 C 和 Eclipse 调试透视图来直接查看变量的值。董事会发给我 0x46C35000,它应该值 25'000 Dec 但 eclipse 显示我 1.18720512e+009...

当我在这个网站上尝试时 http://www.binaryconvert.com/convert_float.html?hexadecimal=46C35000我得到 25,000。

有什么问题?

出于测试目的,我使用了这个:

int main(){

while(1){ // To view easily the value in the debug perspective
float test = 0x46C35000;
printf("%f\n",test);
}
return 0;
}

谢谢!

最佳答案

当你这样做时:

float test = 0x46C35000;

您将设置为 0x46C35000(十进制 1187205120),而不是表示

你可以按如下方式做你想做的事:

union {
uint32_t i;
float f;
} u = { 0x46C35000 };

printf("f=%f\n", u.f);

这允许将无符号的 32 位值安全地解释为 float

关于c - 我的 float 值与我在 C 中的值不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56687604/

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