Nih*_*had 2 c binary microcontroller casting
我做一些微控制器的编程中C.我来自各种传感器的4个字节,代表任一读取float
,int
或unsigned int
.目前,我将它们以unsigned int
格式存储在微控制器中,即使数据可能是float
微控制器,它们只是字节.然后将该数据传输到PC.我希望PC将二进制数据解释为a float
或an int
或者unsigned int
我希望的时候.有没有办法做到这一点?
防爆.
unsigned int value = 0x40040000; // This is 2.0625 in double
double result = convert_binary_to_double(value); // result = 2.0625
Run Code Online (Sandbox Code Playgroud)
谢谢.
PS:我尝试了类型转换,但这不起作用.
请记住,您要求的并不是完全可移植的,这样的事情可能会起作用:
float value = *(float *)&bits;
Run Code Online (Sandbox Code Playgroud)
另一个明显的可能性是使用联合:
typedef union {
unsigned int uint_val;
int int_val;
float float_val;
} values;
values v;
v.uint_val = 0x40040000;
float f = v.float_val;
Run Code Online (Sandbox Code Playgroud)
两者都可能正常工作,但都不能保证可移植性.