#include <iostream>
#include <iomanip>
#include <bitset>
using namespace std;
void pokazIEEE754(float x)
{
// reinterpretujemy float jako 32-bitową liczbę całkowitą
uint32_t bits = *reinterpret_cast<uint32_t*>(&x);
cout << "Liczba: " << x << endl;
bitset<32> b(bits);
cout << "Bity IEEE-754: " << b << endl;
cout << "Znak: " << b[31] << endl;
cout << "Wykładnik: " << b.to_string().substr(1, 8) << endl;
cout << "Mantysa: " << b.to_string().substr(9, 23) << endl;
cout << endl;
}
int main()
{
float a = 10.25f;
float b = -0.2f;
pokazIEEE754(a);
pokazIEEE754(b);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGJpdHNldD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcG9rYXpJRUVFNzU0KGZsb2F0IHgpCnsKICAgIC8vIHJlaW50ZXJwcmV0dWplbXkgZmxvYXQgamFrbyAzMi1iaXRvd8SFIGxpY3pixJkgY2HFgmtvd2l0xIUKICAgIHVpbnQzMl90IGJpdHMgPSAqcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KCZ4KTsKCiAgICBjb3V0IDw8ICJMaWN6YmE6ICIgPDwgeCA8PCBlbmRsOwoKICAgIGJpdHNldDwzMj4gYihiaXRzKTsKCiAgICBjb3V0IDw8ICJCaXR5IElFRUUtNzU0OiAiIDw8IGIgPDwgZW5kbDsKCiAgICBjb3V0IDw8ICJabmFrOiAgICAgICIgPDwgYlszMV0gPDwgZW5kbDsKICAgIGNvdXQgPDwgIld5a8WCYWRuaWs6ICIgPDwgYi50b19zdHJpbmcoKS5zdWJzdHIoMSwgOCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgIk1hbnR5c2E6ICAgIiA8PCBiLnRvX3N0cmluZygpLnN1YnN0cig5LCAyMykgPDwgZW5kbDsKICAgIGNvdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBmbG9hdCBhID0gMTAuMjVmOwogICAgZmxvYXQgYiA9IC0wLjJmOwoKICAgIHBva2F6SUVFRTc1NChhKTsKICAgIHBva2F6SUVFRTc1NChiKTsKCiAgICByZXR1cm4gMDsKfQo=