浮点型数据存储方式分析
时间:12-01
来源:互联网
点击:
it的底数(只存储23-bit) 需要注意,浮点数为0时,指数和底数都为0,但此前的公式不成立。因为2的0次方为1,所以,0是个特例。当然,这个特例也不用认为去干扰,编译器会自动去识别。 这样我们就可以知道前面这个题中输出的结果啦,从上面的分析可以知道一个float型的数的基本存储方式,按照上面的实现可以知道5.0的存储方式为如下的形式: 01000000101000000000000000000000 从上面的这个存储形式我们可以得到基本的整形数值时0x40A00000。进而也就知道了4个bytes中的数值大小。 这是充分利用了联合体的共享内存特性,我们改变程序如下所示: #include typedefuniontest int main() t.i = 65; 根据上面的分析,可以比较方便的计算出结果如下所示: 当然这只是我在X86系统中的输出,在大端系统中会是什么结果我不得而知,具体的要参看IEEE标准。 float类型的数据是比较复杂的问题,我将在后面认真研究,争取早日解决各种问题。
{
float a;
int i;
char c[4];
}Test;
{
Test t;
t.a = 5.0;
printf("%f",t.a);
printf("%d",t.i);
printf("%c,%c,%c,%c",t.c[3],t.c[2],t.c[1],t.c[0]);
printf("%f",t.a);
printf("%d",t.i);
printf("%c,%c,%c,%c",t.c[3],t.c[2],t.c[1],t.c[0]);
return 0;
}
浮点型数据存储方式分 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)