Answer
The Ex__2_double_format.cpp.cpp
C++ file contains the code for this exercise:
// Ex__2_double_format.cpp #include <iostream> #include <cstdint> void print_float(float f) { const auto bytes = static_cast<uint8_t*>( static_cast<void*>(&f)); printf(" Float | %9g | ", f); for (int i = sizeof(float) - 1; i >= 0; i--) printf("%02X", bytes[i]); printf(" | "); const auto sign = bytes[3] >> 7; const auto exponent = ((static_cast<uint16_t>( bytes[3] & 0x7F) << 8) | bytes[2]) >> 7; auto exp_unbiased = exponent - 127; uint32_t mantissa = 0; for (auto i = 0; i < 3; i++) mantissa = (mantissa << 8) | bytes[2 - i]; mantissa &= 0x7FFFFF; // Clear upper bit double mantissa_dec; if (exponent == 0) // This is zero or a subnormal number { mantissa_dec = mantissa / static_cast<double...