#include <iostream>
#include <cstring>
#include <sstream>
using namespace std;
union Conversor {
char bytes[sizeof( double )];
double x;
};
int main()
{
char bytes[sizeof(double)];
double x = 32.121;
cout << "Sizeof char: " << sizeof( char ) << endl;
cout << "Sizeof double: " << sizeof( double ) << endl;
// Copying memory
memcpy( bytes, &x, sizeof(x) );
for(int i = 0; i < sizeof( x ); ++i) {
cout << bytes[ i ] << ' ';
}
// Using a union
Conversor cnvt;
cnvt.x = x;
for(int i = 0; i < sizeof( x ); ++i) {
cout << cnvt.bytes[ i ] << ' ';
}
// Just text conversion
ostringstream cnvt2;
cnvt2 << 32.121;
cout << cnvt2.str() << endl;
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHNzdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1bmlvbiBDb252ZXJzb3IgewogICAgY2hhciBieXRlc1tzaXplb2YoIGRvdWJsZSApXTsKICAgIGRvdWJsZSB4Owp9OwoKaW50IG1haW4oKQp7CgljaGFyIGJ5dGVzW3NpemVvZihkb3VibGUpXTsKCWRvdWJsZSB4ID0gMzIuMTIxOwoJCgljb3V0IDw8ICJTaXplb2YgY2hhcjogIiA8PCBzaXplb2YoIGNoYXIgKSA8PCBlbmRsOwoJY291dCA8PCAiU2l6ZW9mIGRvdWJsZTogIiA8PCBzaXplb2YoIGRvdWJsZSApIDw8IGVuZGw7CgoJLy8gQ29weWluZyBtZW1vcnkKCW1lbWNweSggYnl0ZXMsICZ4LCBzaXplb2YoeCkgKTsKCQoJZm9yKGludCBpID0gMDsgaSA8IHNpemVvZiggeCApOyArK2kpIHsKCQljb3V0IDw8IGJ5dGVzWyBpIF0gPDwgJyAnOwkKCX0KCQoJLy8gVXNpbmcgYSB1bmlvbgoJQ29udmVyc29yIGNudnQ7CgljbnZ0LnggPSB4OwoJCglmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZW9mKCB4ICk7ICsraSkgewoJCWNvdXQgPDwgY252dC5ieXRlc1sgaSBdIDw8ICcgJzsJCgl9CgkKCS8vIEp1c3QgdGV4dCBjb252ZXJzaW9uCglvc3RyaW5nc3RyZWFtIGNudnQyOwoKICAgIGNudnQyIDw8IDMyLjEyMTsKICAgIGNvdXQgPDwgY252dDIuc3RyKCkgPDwgZW5kbDsKCQoJCgljb3V0IDw8IGVuZGw7CglyZXR1cm4gMDsKfQo=