在我的C++代码,我宣布一个联盟:为什么这个浮球联合NaN的输出?
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
您使用的是C编译器或C++吗? –
C或C++,标记一个。 “工会”在两者中都没有做同样的事情。 –
AFAIK,这在C++中是未定义的。 (请仅标记C和C++中的一个,除非您询问它们之间的差异。) – molbdnilo