在我的C++代码中,我声明了一个union:
typedef union U_FloatParse {
float float_data;
unsigned char byte_data[4];
} U_FloatConvert;
然后,我将byte_data数组的值设置为0、0、192、127:
U_FloatConvert depth_data;
depth_data.byte_data[0] = 0;
depth_data.byte_data[1] = 0;
depth_data.byte_data[2] = 192;
depth_data.byte_data[3] = 127;
printf("\n\nFloat = %f\n\n", depth_data.float_data);
作为输出结果我得到了NaN。为什么我没有得到一个正常的浮点值呢?当我传递值:56、137、33、63时,我得到了浮点值0.631000。
测试代码:http://codepad.org/Q8ds1V0F
union
的功能并非完全相同。 - Baum mit Augen