Question
A EASY C LANGUAGE PROBLEM You have been assigned the task of writing a C function to compute a floating point representation of 2^x .
A EASY C LANGUAGE PROBLEM
You have been assigned the task of writing a C function to compute a floating point representation of 2^x . You decide that the best way is to do this is to directly construct the IEEE single precision representation of the result. When x is too small, your routine will return 0.0. When x is too large, it will return +. Fill in the blank portions of the code that follows to compute the correct result. Assume the function u2f returns a floating point value having an identical bit representation as its unsigned argument. Show work. float fpwr2(int x) {
/* Result exponent and fraction */
unsigned exp, frac;
unsigned u;
if (x < ________) {
/* Too small. Return 0.0 */
exp = ________;
frac = ________;
} else if (x < ________) {
/* Denormalized result */
exp = ________;
frac = ________;
} else if (x < ________) {
/* Normalized result. */
exp = ________;
frac = ________;
} else
/* Too big. Return + */
exp = ________;
frac = ________;
}
/* Pack exp and frac into 32 bits */
u = exp << 23 | frac;
/* Return as float */
return u2f(u)
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started