//---------------------------------------------------------- // Written By : Chuck Kelly // Date : 1-22-2002 // Description : Hex to IEEE 32-bit floating point converter //---------------------------------------------------------- #include #include #include int main() { char ch; union u_var { long HexNumber; float IEEENumber; } shared; cout << "Hex to IEEE converter, v0.3\n\n"; do{ cout << "Enter 8 digit Hex number ________\b\b\b\b\b\b\b\b"; cin >> hex >> shared.HexNumber; // display sign bit cout << "Sign bit = "; if (shared.HexNumber & 0x80000000) cout << 1; else cout << 0; cout << endl; cout.setf(ios::uppercase); // turn on uppercase // display exponent int exp = ((shared.HexNumber & 0x7F800000) >> 23); cout << "Exponent = " << hex << exp << endl; // display mantissa int mant = (shared.HexNumber & 0x007FFFFF); mant = mant | 0x00800000; // set bit that is always removed cout << "Mantissa = " << hex << mant << endl; cout.unsetf(ios::uppercase); // turn off uppercase cout << "The IEEE 32-bit value is " << shared.IEEENumber << endl; cout << "\nContinue (y/n)? "; cin >> ch; }while (ch != 'n' && ch != 'N'); return 0; }