在我的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