#include <cstdint>
#include <sstream>
#include <iostream>
#include <bitset>
int main()
{
std::istringstream iss("0011111111101111111101111100111011011001000101101000011100101011");
std::bitset<32> hi, lo;
if (iss >> hi >> lo)
{
struct { uint32_t lo, hi; } words = { lo.to_ulong(), hi.to_ulong() };
double converted = *reinterpret_cast<double*>(&words);
std::cout << hi << std::endl;
std::cout << lo << std::endl;
std::cout << converted << std::endl;
}
}
I2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxiaXRzZXQ+CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpc3MoIjAwMTExMTExMTExMDExMTExMTExMDExMTExMDAxMTEwMTEwMTEwMDEwMDAxMDExMDEwMDAwMTExMDAxMDEwMTEiKTsKCiAgICBzdGQ6OmJpdHNldDwzMj4gaGksIGxvOwogICAgaWYgKGlzcyA+PiBoaSA+PiBsbykKICAgIHsKICAgICAgICBzdHJ1Y3QgeyB1aW50MzJfdCBsbywgaGk7IH0gd29yZHMgPSB7IGxvLnRvX3Vsb25nKCksIGhpLnRvX3Vsb25nKCkgfTsKICAgICAgICBkb3VibGUgY29udmVydGVkID0gKnJlaW50ZXJwcmV0X2Nhc3Q8ZG91YmxlKj4oJndvcmRzKTsKCiAgICAgICAgc3RkOjpjb3V0IDw8IGhpIDw8IHN0ZDo6ZW5kbDsKICAgICAgICBzdGQ6OmNvdXQgPDwgbG8gPDwgc3RkOjplbmRsOwogICAgICAgIHN0ZDo6Y291dCA8PCBjb252ZXJ0ZWQgPDwgc3RkOjplbmRsOwogICAgfQp9