gpt4 book ai didi

c - 无需类型转换的二进制 int 到 double

转载 作者:行者123 更新时间:2023-12-04 10:35:43 25 4
gpt4 key购买 nike

我正在用 C 语言进行一些微 Controller 编程。我正在从各种传感器读取 4 个字节,这些字节代表 floatintunsigned int .目前,我将它们以 unsigned int 格式存储在微 Controller 中,即使数据可能是 float 因为对于微 Controller 它们只是字节。然后将此数据传输到 PC。我希望 PC 随时将二进制数据解释为floatintunsigned int .有没有办法做到这一点?

例如

unsigned int value = 0x40040000; // This is 2.0625 in double
double result = convert_binary_to_double(value); // result = 2.0625

谢谢。

PS:我试过类型转换,但没有用。

最佳答案

请记住,您所要求的并不是完全可移植的,像这样的东西可能会完成这项工作:

float value = *(float *)&bits;

另一种明显的可能性是使用 union :

typedef union { 
unsigned int uint_val;
int int_val;
float float_val;
} values;

values v;
v.uint_val = 0x40040000;
float f = v.float_val;

两者都可能工作正常,但都不能保证可移植性。

关于c - 无需类型转换的二进制 int 到 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5069443/

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