Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <bitset>
- union flt {
- struct ieee754 {
- unsigned short mantissa:23; // 23 > sizeof(short)
- unsigned short exponent:8;
- unsigned short sign:1;
- } raw ; // 23 + 8 + 1 = 32 bits = 4 byte
- unsigned int f;
- };
- int main()
- {
- flt a;
- a.f = 0x84229FFF;
- std::cout << "a.f =\t\t " << std::bitset<32>(a.f) << std::endl;
- std::cout << "a.mantissa =\t\t " <<std::bitset<23>(a.raw.mantissa) << std::endl;
- std::cout << "a.exponent =\t " <<std::bitset<8>(a.raw.exponent) << std::endl;
- std::cout << "a.sign =\t " << std::bitset<1>(a.raw.sign) << std::endl;
- }
- /*
- Output
- a.f = 10000100001000101001111111111111
- a.mantissa = 00000001001111111111111
- a.exponent = 00001000
- a.sign = 1
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement