当前位置: 代码迷 >> C语言 >> float究竟怎样读取磁盘的二进制数据?
  详细解决方案

float究竟怎样读取磁盘的二进制数据?

热度:161   发布时间:2008-02-06 09:32:35.0
float究竟怎样读取磁盘的二进制数据?
这时C源码:
#include <stdio.h>
int   main(void)
{
        float   a   =   3.4e-38/10;                 float   g=a*10e38;
        float   b   =   3.4e-38/100;               float   h=b*10e38;
        float   c   =   3.4e-38/1000;             float   i=c*10e38;
        float   d   =   3.4e-38/10000;           float   j=d*10e38;
        float   e   =   3.4e-38/100000;         float   k=e*10e38;
        float   f   =   3.4e-38/1000000;       float   l=f*10e38;
        printf("g=%f\n",   g);printf("a=%e\n",   a);
        printf("h=%f\n",   h);printf("b=%e\n",   b);
        printf("i=%f\n",   i);printf("c=%e\n",   c);
        printf("j=%f\n",   j);printf("d=%e\n",   d);
        printf("k=%f\n",   k);printf("e=%e\n",   e);
        printf("l=%f\n",   l);printf("f=%e\n",   f);
      
        getchar();
        return   0;
}
结果是
g=3.400000
a=3.400000e-039
h=0.340000
b=3.399998e-040
i=0.034000
c=3.399970e-041
j=0.003400
d=3.399550e-042
k=0.000341
e=3.405155e-043
l=0.000034
f=3.363116e-044
我真的很想明白a,b,c,d,e,f的那些值是如何出来的,明白点就是:a,b,c,d,e,f所代表的磁盘上相应的数据存储单位的状态。
还有就是产生a,b,c,d,e,f这些值时,系统会逐个降低它们的精度,那么系统具体是如何通过操作磁盘上相应的数据存储单位的状态来实现的。
上面的数据a,b,c,d,e,f显然不是我们“人脑”的四舍五入得出的,如果是人脑得出的,一定只有3,4,0这三个数字而已,不会有其它数字的。
希望前辈们帮帮我,这对于理解这些数据的产生有很大意义!
搜索更多相关的解决方案: 二进制  float  磁盘  数据  

----------------解决方案--------------------------------------------------------
建议系统补习计算机组成原理。
----------------解决方案--------------------------------------------------------
这个程序不会向磁盘写入和读取任何东东(指本程序,不包括其调用的模块),它是在主存(RAM)中完成的。要想弄明白怎么回事,建议参看Intel官方发布的参考手册。不要看所谓的计算机组成原理,没什么鸟用!
----------------解决方案--------------------------------------------------------
  相关解决方案