#include <iostream>
using namespace std;
typedef union {
float f;
struct {
unsigned int mantissa : 23;
unsigned int exponent : 8;
unsigned int sign : 1;
} parts;
unsigned char hex4;
} ieee754_float;
int main()
{
float value = 0.101101f;
ieee754_float u;
u.f = value;
printf("Sign: %u\n", u.parts.sign);
printf("Exponent: %u\n", u.parts.exponent);
printf("Mantissa: %u\n", u.parts.mantissa);
printf("%#x,%#x,%#x,%#x\n", u.hex3,u.hex2,u.hex1,u.hex0);
unsigned char hex\[\] = { 0x42, 0x3e, 0x60, 0x00 };
u.hex3 = hex0;
u.hex2 = hex1;
u.hex1 = hex2;
u.hex0 = hex3;
printf("float original data: %f\n", u.f);
return 0;
}