#include <iostream>
#include <bitset>
#include <cstdint>
void printBitWise(std::ostream& os, uint8_t* data, size_t size) {
for(size_t i = 0; i < size; ++i) {
for(uint8_t j = 0; j < 8; ++j) {
if((data[i] >> j) & 1) {
os << '1';
}
else {
os << '0';
}
}
}
}
int main() {
int x = -1;
std::bitset<sizeof(int) * 8> bitwise1(x);
std::cout << bitwise1.to_string() << std::endl;
int y = -2;
std::bitset<sizeof(int) * 8> bitwise2(y);
std::cout << bitwise2.to_string() << std::endl;
float a = -1;
printBitWise(std::cout,reinterpret_cast<uint8_t*>(&a),sizeof(float));
std::cout << std::endl;
double b = -1;
printBitWise(std::cout,reinterpret_cast<uint8_t*>(&b),sizeof(double));
std::cout << std::endl;
float c = -2;
printBitWise(std::cout,reinterpret_cast<uint8_t*>(&c),sizeof(float));
std::cout << std::endl;
double d = -2;
printBitWise(std::cout,reinterpret_cast<uint8_t*>(&d),sizeof(double));
std::cout << std::endl;
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxiaXRzZXQ+CiAgICAjaW5jbHVkZSA8Y3N0ZGludD4KCiAgICB2b2lkIHByaW50Qml0V2lzZShzdGQ6Om9zdHJlYW0mIG9zLCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgewogICAgCWZvcihzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgIAkJZm9yKHVpbnQ4X3QgaiA9IDA7IGogPCA4OyArK2opIHsKICAgIAkJCWlmKChkYXRhW2ldID4+IGopICYgMSkgewogICAgCQkJCW9zIDw8ICcxJzsKICAgIAkJCX0KICAgIAkJCWVsc2UgewogICAgCQkJCW9zIDw8ICcwJzsKICAgIAkJCX0KICAgIAkJfQogICAgCX0KICAgIH0KICAgIAogICAgaW50IG1haW4oKSB7CiAgICAJaW50IHggPSAtMTsKCSAgICBzdGQ6OmJpdHNldDxzaXplb2YoaW50KSAqIDg+IGJpdHdpc2UxKHgpOwoJCgkgICAgc3RkOjpjb3V0IDw8IGJpdHdpc2UxLnRvX3N0cmluZygpIDw8IHN0ZDo6ZW5kbDsKCQoJICAgIGludCB5ID0gLTI7CgkgICAgc3RkOjpiaXRzZXQ8c2l6ZW9mKGludCkgKiA4PiBiaXR3aXNlMih5KTsKICAgIAlzdGQ6OmNvdXQgPDwgYml0d2lzZTIudG9fc3RyaW5nKCkgPDwgc3RkOjplbmRsOwoKCSAgICBmbG9hdCBhID0gLTE7CgkgICAgcHJpbnRCaXRXaXNlKHN0ZDo6Y291dCxyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmYSksc2l6ZW9mKGZsb2F0KSk7CgkgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCQoJICAgIGRvdWJsZSBiID0gLTE7CgkgICAgcHJpbnRCaXRXaXNlKHN0ZDo6Y291dCxyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmYiksc2l6ZW9mKGRvdWJsZSkpOwoJICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CgoJICAgIGZsb2F0IGMgPSAtMjsKCSAgICBwcmludEJpdFdpc2Uoc3RkOjpjb3V0LHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZjKSxzaXplb2YoZmxvYXQpKTsKCSAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwoJCgkgICAgZG91YmxlIGQgPSAtMjsKCSAgICBwcmludEJpdFdpc2Uoc3RkOjpjb3V0LHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZkKSxzaXplb2YoZG91YmxlKSk7CgkgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCgkgICAgcmV0dXJuIDA7CiAgICB9