符号なしの__int32にfloat表現が格納されています。この質問の答えで指示されているように、バイトシフトを再構築できることを私は知っています。
シフト、乗算、合計を避け、ビットを再解釈したいだけです。IEEE 754単精度エントリのWikipediaの例を試しましたが、再解釈すると0になります。
これが私のコードです:
unsigned __int32 integer = 0;
unsigned __int32 mask = 0;
mask = mask + 1 << 30;
mask = mask + 1 << 29;
mask = mask + 1 << 28;
mask = mask + 1 << 27;
mask = mask + 1 << 26;
mask = mask + 1 << 22;
integer = integer ^ mask;
printf("%ld %d\n", integer, sizeof(__int32));
float* decimal = reinterpret_cast<float*>(&integer);
printf("%f", *decimal);
return 0;