Advertisement
Swiftkill

BitField sheningans.

Nov 17th, 2021
1,277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <bitset>
  4.  
  5. union flt      {  
  6.    struct ieee754  {
  7.       unsigned short mantissa:23; // 23 > sizeof(short)
  8.       unsigned short exponent:8;
  9.       unsigned short     sign:1;
  10.     }   raw   ;  //  23 + 8 + 1 = 32 bits =  4 byte
  11.    unsigned int f;      
  12. };
  13.  
  14. int main()
  15. {
  16.     flt a;
  17.     a.f = 0x84229FFF;
  18.     std::cout << "a.f =\t\t " << std::bitset<32>(a.f) << std::endl;
  19.     std::cout << "a.mantissa =\t\t  " <<std::bitset<23>(a.raw.mantissa) << std::endl;
  20.     std::cout << "a.exponent =\t  " <<std::bitset<8>(a.raw.exponent) << std::endl;
  21.     std::cout << "a.sign =\t " << std::bitset<1>(a.raw.sign) << std::endl;
  22.    
  23.  
  24. }
  25.  
  26. /*
  27. Output
  28. a.f =          10000100001000101001111111111111
  29. a.mantissa =            00000001001111111111111
  30. a.exponent =    00001000
  31. a.sign =       1
  32. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement