问题:在VC++6.0中所使用的float型数据(单精度浮点数),在内存中存储的格式到底是怎样的呢?
有关程序输出结果的详细说明,请参看程序下方MSDN截图上的解释,源代码如下:
#include <iostream.h>
int main()
{
/* 本程序版权归loujing.com所有,转载请注明出处,谢谢合作! */
float a; /* 可以分别让a等于2,-2,4,6,1,0.75,2.5,0.1,0 */
cout<<"Please Input a Float Number:";
cin>>a;
char *p=(char*)&a;
p+=3; /* 将地址由高到低 */
int line=0,temp=0;
while(temp<4)
{
for(int i=7;i>=0;i--)
{
if(*p&(1<<i)) cout<<'1'; /* 作与运算,如果和1与为1,说明该二进制是1,否则为0,其中左移运算让1不断往高位移动 */
else cout<<'0';
line++;
if(line%4==0) cout<<' ';
}
temp++;
p--;
}
cout<<endl;
return 0;
}