// PID: 730677144 // I pledge the COMP 211 honor code. #include #include #include #include int main(int argc, char* argv[]) { // convert a IEEE 754 single precision floating point number to a 32-bit // integer char input[33]; char exponent[9]; char mantissa[24]; strncpy(input, argv[1], 32); input[32] = '\0'; strncpy(exponent, input + 1, 8); strncpy(mantissa, input + 9, 23); int sign = (input[0] == '1') ? -1 : 1; long int exp = strtol(exponent, NULL, 2) - 127; float frac = 1.0; for (int i = 0; i < 23; i++) { if (mantissa[i] == '1') { frac += pow(2, -i - 1); } } float result = sign * frac * pow(2, exp); printf("%.4f\n", result); }