#include <stdio.h>
typedef union
{
float fdata;
unsigned long ldata;
} u_float_long_union;
float byte_to_float(unsigned char byte[]) {
u_float_long_union u;
u.ldata = (unsigned long)byte[0] |
((unsigned long)byte[1] << 8) |
((unsigned long)byte[2] << 16) |
((unsigned long)byte[3] << 24);
return u.fdata;
}
int main() {
unsigned char bytes[] = {0xC0, 0x8C, 0x4A, 0x3F};
float result = byte_to_float(bytes);
printf("The float value is: %f\n", result
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHVuaW9uCnsKICAgIGZsb2F0IGZkYXRhOwogICAgdW5zaWduZWQgbG9uZyBsZGF0YTsKfSB1X2Zsb2F0X2xvbmdfdW5pb247CgpmbG9hdCBieXRlX3RvX2Zsb2F0KHVuc2lnbmVkIGNoYXIgYnl0ZVtdKSB7CiAgICB1X2Zsb2F0X2xvbmdfdW5pb24gdTsKICAgIHUubGRhdGEgPSAodW5zaWduZWQgbG9uZylieXRlWzBdIHwgCiAgICAgICAgICAgICAgKCh1bnNpZ25lZCBsb25nKWJ5dGVbMV0gPDwgOCkgfAogICAgICAgICAgICAgICgodW5zaWduZWQgbG9uZylieXRlWzJdIDw8IDE2KSB8CiAgICAgICAgICAgICAgKCh1bnNpZ25lZCBsb25nKWJ5dGVbM10gPDwgMjQpOwogICAgcmV0dXJuIHUuZmRhdGE7Cn0KCmludCBtYWluKCkgewogICAgdW5zaWduZWQgY2hhciBieXRlc1tdID0gezB4QzAsIDB4OEMsIDB4NEEsIDB4M0Z9OwogICAgZmxvYXQgcmVzdWx0ID0gYnl0ZV90b19mbG9hdChieXRlcyk7CiAgICBwcmludGYoIlRoZSBmbG9hdCB2YWx1ZSBpczogJWZcbiIsIHJlc3VsdCk7CiAgICByZXR1cm4gMDsKfQ==