I am trying to print out the floating point values 0x40a00000 and 0xc0200000. But the values that I print out and the correct values according to the IEEE-754 Floating Point Con
These are assigning the float representation of the hexadecimal numbers to the floats.
Instead, do this:
int i1 = 0x40a00000;
int i2 = 0xc0200000;
float tmp1, tmp2;
memcpy(&tmp1, &i1, sizeof(int));
memcpy(&tmp2, &i2, sizeof(int));
Print them:
printf("tmp1 = %.2f\n", tmp1);
printf("tmp2 = %.2f\n", tmp2);
Output:
tmp1 = 5.00
tmp2 = -2.50
Full example:
#include
#include
int main(void)
{
int i1 = 0x40a00000;
int i2 = 0xc0200000;
float tmp1, tmp2;
memcpy(&tmp1, &i1, sizeof(int));
memcpy(&tmp2, &i2, sizeof(int));
printf("tmp1 = %.2f\n", tmp1);
printf("tmp2 = %.2f\n", tmp2);
}