से 32 बिट फ्लोट का निर्माण करना मैं अपने 4 समग्र बाइट्स में से 32 बिट फ्लोट बनाने की कोशिश कर रहा हूं। क्या निम्न विधि के मुकाबले ऐसा करने के लिए कोई बेहतर (या अधिक पोर्टेबल) तरीका है?अपने 4 समग्र बाइट्स [सी ++]
#include <iostream>
typedef unsigned char uchar;
float bytesToFloat(uchar b0, uchar b1, uchar b2, uchar b3)
{
float output;
*((uchar*)(&output) + 3) = b0;
*((uchar*)(&output) + 2) = b1;
*((uchar*)(&output) + 1) = b2;
*((uchar*)(&output) + 0) = b3;
return output;
}
int main()
{
std::cout << bytesToFloat(0x3e, 0xaa, 0xaa, 0xab) << std::endl; // 1.0/3.0
std::cout << bytesToFloat(0x7f, 0x7f, 0xff, 0xff) << std::endl; // 3.4028234 × 10^38 (max single precision)
return 0;
}
यह मानते हुए कि यह स्टैक ओवरफ़्लो पर मेरा पहला प्रश्न था, मैं विभिन्न प्रतिक्रियाओं से रोमांचित हूं। मैं उनके इनपुट के लिए सभी को धन्यवाद देता हूं। – Madgeek