介绍浮点数存储格式的文章很多,所以这里不再赘述,提供了一个例子,供大家查看浮点数各部分的存储数据。
#include <stdio.h>
typedef union{float f;
struct{
unsigned int frac:23;
unsigned int expo:8;
unsigned int sign:1;
}x;
}s;
int main(){
s mys;
mys.f = 1.5f;
printf("%f, %u , %u ,%x \n",mys.f,mys.x.sign,mys.x.expo,mys.x.frac);
mys.f = 1.25f;
printf("%f, %u , %u ,%x \n",mys.f,mys.x.sign,mys.x.expo,mys.x.frac);
mys.f = 8.125f;
printf("%f, %u , %u ,%x \n",mys.f,mys.x.sign,mys.x.expo,mys.x.frac);
}