fork download
  1. #include <iostream>
  2. #include <bitset>
  3. #include <cstdint>
  4.  
  5. void printBitWise(std::ostream& os, uint8_t* data, size_t size) {
  6. for(size_t i = 0; i < size; ++i) {
  7. for(uint8_t j = 0; j < 8; ++j) {
  8. if((data[i] >> j) & 1) {
  9. os << '1';
  10. }
  11. else {
  12. os << '0';
  13. }
  14. }
  15. }
  16. }
  17.  
  18. int main() {
  19. int x = -1;
  20. std::bitset<sizeof(int) * 8> bitwise1(x);
  21.  
  22. std::cout << bitwise1.to_string() << std::endl;
  23.  
  24. int y = -2;
  25. std::bitset<sizeof(int) * 8> bitwise2(y);
  26. std::cout << bitwise2.to_string() << std::endl;
  27.  
  28. float a = -1;
  29. printBitWise(std::cout,reinterpret_cast<uint8_t*>(&a),sizeof(float));
  30. std::cout << std::endl;
  31.  
  32. double b = -1;
  33. printBitWise(std::cout,reinterpret_cast<uint8_t*>(&b),sizeof(double));
  34. std::cout << std::endl;
  35.  
  36. float c = -2;
  37. printBitWise(std::cout,reinterpret_cast<uint8_t*>(&c),sizeof(float));
  38. std::cout << std::endl;
  39.  
  40. double d = -2;
  41. printBitWise(std::cout,reinterpret_cast<uint8_t*>(&d),sizeof(double));
  42. std::cout << std::endl;
  43.  
  44. return 0;
  45. }
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
11111111111111111111111111111111
11111111111111111111111111111110
00000000000000000000000111111101
0000000000000000000000000000000000000000000000000000111111111101
00000000000000000000000000000011
0000000000000000000000000000000000000000000000000000000000000011