//找了以下一段代码 , 用C写的,哪位熟悉C的能否翻可 D的 ?
先将 42D651CF 分解到 一个 Byte[4]的数组中 , 42 D6 51 CF
float CUllageDlg::flotodec(BYTE byte[4])
{//单精度浮点数共32位,第1位为符号位s,后8为指数位e,最后23位为尾数bit
float v,m1=0,m2=0,m=0;
int s,e,bit1,bit2;
BYTE byt[4]={byte[0],byte[1],byte[2],byte[3]};
s=byt[0]>>7;
e=byt[0]<<1|byt[1]>>7;
for(int i=1;i<8;i++)
{
bit1=byt[1]>>(7-i)&0x01;
m1+=bit1*(1/pow(2.0f,i));
bit2=byt[2]>>(8-i)&0x01;
m2+=bit2*(1/pow(2.0f,i+7));
}
m=m1+m2;
if(e==0)
{
v=pow(-1.0f,s)*pow(2.0f,(-126))*m;
}
if(e!=0&&e!=0xff)
{
v=pow(-1.0f,s)*pow(2.0f,(e-0x7f))*(1+m);
}//if
return v;
}