#include <iostream>
#include <iomanip>
#include <cstdint>
using namespace std;
void printFloatBits(float f) {
// reinterpretujemy float jako 32-bitową liczbę całkowitą
uint32_t bits = *reinterpret_cast<uint32_t*>(&f);
// znak
cout << ((bits >> 31) & 1);
cout << " ";
// cecha (8 bitów)
for (int i = 30; i >= 23; i--)
cout << ((bits >> i) & 1);
cout << " ";
// mantysa (23 bity)
for (int i = 22; i >= 0; i--)
cout << ((bits >> i) & 1);
cout << endl;
}
int main() {
float x;
cout << "Podaj liczbe dziesietna: ";
cin >> x;
cout << fixed << setprecision(15);
cout << "Wartosc jako float = " << x << endl;
cout << "Reprezentacja IEEE 754 (float, 32 bity):" << endl;
printFloatBits(x);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNzdGRpbnQ+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBwcmludEZsb2F0Qml0cyhmbG9hdCBmKSB7CiAgICAvLyByZWludGVycHJldHVqZW15IGZsb2F0IGpha28gMzItYml0b3fEhSBsaWN6YsSZIGNhxYJrb3dpdMSFCiAgICB1aW50MzJfdCBiaXRzID0gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPigmZik7CgogICAgLy8gem5hawogICAgY291dCA8PCAoKGJpdHMgPj4gMzEpICYgMSk7CgogICAgY291dCA8PCAiICI7CgogICAgLy8gY2VjaGEgKDggYml0w7N3KQogICAgZm9yIChpbnQgaSA9IDMwOyBpID49IDIzOyBpLS0pCiAgICAgICAgY291dCA8PCAoKGJpdHMgPj4gaSkgJiAxKTsKCiAgICBjb3V0IDw8ICIgIjsKCiAgICAvLyBtYW50eXNhICgyMyBiaXR5KQogICAgZm9yIChpbnQgaSA9IDIyOyBpID49IDA7IGktLSkKICAgICAgICBjb3V0IDw8ICgoYml0cyA+PiBpKSAmIDEpOwoKICAgIGNvdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICBmbG9hdCB4OwoKICAgIGNvdXQgPDwgIlBvZGFqIGxpY3piZSBkemllc2lldG5hOiAiOwogICAgY2luID4+IHg7CgogICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oMTUpOwogICAgY291dCA8PCAiV2FydG9zYyBqYWtvIGZsb2F0ID0gIiA8PCB4IDw8IGVuZGw7CgogICAgY291dCA8PCAiUmVwcmV6ZW50YWNqYSBJRUVFIDc1NCAoZmxvYXQsIDMyIGJpdHkpOiIgPDwgZW5kbDsKICAgIHByaW50RmxvYXRCaXRzKHgpOwoKICAgIHJldHVybiAwOwp9Cg==