fork(5) download
  1. #include <iostream>
  2. #include <bitset>
  3. #include <limits>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. union udouble {
  9. double d;
  10. unsigned long long u;
  11. };
  12.  
  13. void Display(double doubleValue)
  14. {
  15. udouble ud;
  16. ud.d = doubleValue;
  17. bitset<sizeof(double) * 8> b(ud.u);
  18. cout << "Value : " << doubleValue << endl;
  19. cout << "Value : " << ud.u << endl;
  20. cout << "BitSet : " << b.to_string() << endl;
  21. }
  22.  
  23. int main()
  24. {
  25. Display(1000000000.0);
  26. Display(2000000000.0);
  27. Display(3000000000.0);
  28.  
  29. Display(1000000000000000000000000000000.0);
  30. Display(2000000000000000000000000000000.0);
  31. Display(3000000000000000000000000000000.0);
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
Value  : 1e+09
Value  : 4741671816366391296
BitSet : 0100000111001101110011010110010100000000000000000000000000000000
Value  : 2e+09
Value  : 4746175415993761792
BitSet : 0100000111011101110011010110010100000000000000000000000000000000
Value  : 3e+09
Value  : 4748581863621132288
BitSet : 0100000111100110010110100000101111000000000000000000000000000000
Value  : 1e+30
Value  : 5055640609639927018
BitSet : 0100011000101001001111100101100100111001101000001000110011101010
Value  : 2e+30
Value  : 5060144209267297514
BitSet : 0100011000111001001111100101100100111001101000001000110011101010
Value  : 3e+30
Value  : 5062871452055267759
BitSet : 0100011001000010111011101100001011101011001110000110100110101111