同時通過使用reinterpret_cast將整數轉換爲浮點數更改內存的內容。值更改,同時reinterpret_cast
例如,
float fDest = 0;
__int32 nTempDest = -4808638;
fDest = *reinterpret_cast<float*>(&nTempDest);
爲變量值nTempest十六進制表示爲'42 A0 B6 FF '但之後的reinterpret_cast fDest的含量爲'42 A0 F6 FF'。
任何人都可以給出答案,爲什麼第三個字節從b6變爲f6。
我剛試過,它沒有改變。沒有理由爲什麼。 – user1610015
需要證明(printf%x)和架構 – Mikhail
@ user1610015:代碼違反了嚴格的別名規則,行爲未定義。當我嘗試時,我會得到'-nan'。 –