#include <iostream>
#include <bitset>
#include <cstdint>
using namespace std;
union FloatUnion {
float f;
uint32_t u;
};
void printFloatBits(float value) {
FloatUnion fu;
fu.f = value;
bitset<32> bits(fu.u);
// Bity IEEE 754: [sign | exponent | mantissa]
string s = bits.to_string();
cout << "Wartosc: " << value << endl;
cout << "Bity IEEE 754 (float 32):\n";
cout << "Znak: " << s[0] << endl;
cout << "Wykladnik:" << s.substr(1, 8) << endl;
cout << "Mantysa: " << s.substr(9) << endl;
cout << "Cala reprezentacja: " << s << endl << endl;
}
int main() {
printFloatBits(10.25f);
printFloatBits(-0.2f);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0c2V0PgojaW5jbHVkZSA8Y3N0ZGludD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVuaW9uIEZsb2F0VW5pb24gewogICAgZmxvYXQgZjsKICAgIHVpbnQzMl90IHU7Cn07Cgp2b2lkIHByaW50RmxvYXRCaXRzKGZsb2F0IHZhbHVlKSB7CiAgICBGbG9hdFVuaW9uIGZ1OwogICAgZnUuZiA9IHZhbHVlOwoKICAgIGJpdHNldDwzMj4gYml0cyhmdS51KTsKCiAgICAvLyBCaXR5IElFRUUgNzU0OiBbc2lnbiB8IGV4cG9uZW50IHwgbWFudGlzc2FdCiAgICBzdHJpbmcgcyA9IGJpdHMudG9fc3RyaW5nKCk7CiAgICBjb3V0IDw8ICJXYXJ0b3NjOiAiIDw8IHZhbHVlIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJCaXR5IElFRUUgNzU0IChmbG9hdCAzMik6XG4iOwogICAgY291dCA8PCAiWm5hazogICAgICIgPDwgc1swXSA8PCBlbmRsOwogICAgY291dCA8PCAiV3lrbGFkbmlrOiIgPDwgcy5zdWJzdHIoMSwgOCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgIk1hbnR5c2E6ICAiIDw8IHMuc3Vic3RyKDkpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJDYWxhIHJlcHJlemVudGFjamE6ICIgPDwgcyA8PCBlbmRsIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewogICAgcHJpbnRGbG9hdEJpdHMoMTAuMjVmKTsKICAgIHByaW50RmxvYXRCaXRzKC0wLjJmKTsKICAgIHJldHVybiAwOwp9Cg==