Implement two functions for converting between IEEE single-precision floating-point and 32-bit two's complement integer, and one function to convert a IEEE single-precision floating point number to a IEEE double-precision floating point number -- 2
₹600-1500 INR
Dokončeno
Zveřejněno přibližně před 3 roky
₹600-1500 INR
Zaplaceno při doručení
The f2i routine should take one 32-bit integer as its only argument and should return a 32-bit
integer. However, the input value should be interpreted to be actually an single-precision
floating-point value. The return value should be the result of converting the input value to 32-bit
two's complement integer. The conversion should be implemented using only integer
operations. Be sure to handle negative, NaN, infinity and de-normalized input floating-point
values.
The i2f routine should take one 32-bit integer as its only argument and should return a 32-bit
integer. However, the return value should be interpreted to be actually an single-precision
floating-point value. The return value should be the result of converting the input integer value to
IEEE single-precision floating point. The conversion should be implemented using only
integer operations. Be sure to handle negative input values.
The s2d routine should take one 32-bit integer as its only argument and should return a 64-bit
integer. However, the input value should be interpreted to be actually an single-precision
floating-point value and the return value should be interpreted to be actually an double-
precision floating-point value. The return value should be the result of converting the input
single-precision floating-point value to double-precision floating point. The conversion
should be implemented using only integer operations.
You should use the the standard header files stdint.h and inttypes.h. These header files define
size-specific integer types (e.g. int32_t) and portable printf formats for those types (e.g.
PRIx32).
For example: int32_t x; printf("x is %" PRId32 "\n", x);