设计一个共用体结构,long类型用于存放浮点数的IEEE754机器码,float用于按照浮点数格式输出。说明了机器码如何解读依赖于我们怎么定义数据类型。我们分别按照十六进制机器码,float浮点数,整数三种格式依次输出。
#include <iostream>
union long_float
{
long varlong;
float varfloat;
}var;//共用体只有一个存储空间,我们用不同观点看机器码
int main()
{
long x;
float y;
x=0xBE580000;
y=100.25;
var.varlong=x;
printf("the code in machine for x:%lX\n",var.varlong);
printf("the float true value for x:%f\n",var.varfloat);//无符号
printf("the int true value for x:%d\n",var.varlong);//有符号整数
var.varfloat=y;
printf("the code in machine for x:%lX\n",var.varlong);
printf("the float true value for x:%lf\n",var.varfloat);//无符号
printf("the int true value for x:%d\n",var.varlong);//有符号整数
return 0;
}