如何判断四个字节的内容不是浮点数?
我有四个字节的东西(通过串口通讯得到的),我是这样把它转化为浮点数的:
char *p,temp[4];
float f;
AnsiString s;
temp[0]=*p;
temp[1]=*(p+1);
temp[2]=*(p+2);
temp[3]=*(p+3);
f1=0;
f=*(float *)(&temp);
s=FloatToStr(f);
但如果四个字节的东西代表的并不是浮点数,则会使程序执行s=FloatToStr(f)时出现一个用try也无法避免的错误,加上以下判断也不行:
try
{
if (_isnan(f))
{f=0;}
}
catch (...)
{
f=0;
}
请问我该如何判断四个字节的东西代表的并不是浮点数?
我email:woshizhangwuji@163.net
我只能加23分。