float类型数据是否合理判断
时间:10-02
整理:3721RD
点击:
float类型数据是否合理判断
_chkfloat_单片机内嵌函数是怎么实现的?
也就是怎么判断一个float数据是否合理的方法?出错可能是正溢出负溢出和nan(非float数据),那么我实现的时候怎么设置判断条件?
1、直接将其和float类型数范围比较这么做对吗?
a, if(!((mainFloat1>-3.40E+38)&&(mainFloat1<3.40E+38)))
{
RSTSTA |=0x04;
}
b,与 《正无穷0x7f800000,负无穷0xff800000》相比较
2、还是通过判断对应的4个字节数据?如果是,怎么判断?如果 E 是0 并且 M 是0,则这个数的真值为±0(正负号和数符位有关) 如果 E = 255 并且 M 是0,则这个数的真值为±∞(同样和符号位有关) 如果 E = 255 并且 M 不是0,则这不是一个数(NaN)。
3,你认为呢?
_chkfloat_单片机内嵌函数是怎么实现的?
也就是怎么判断一个float数据是否合理的方法?出错可能是正溢出负溢出和nan(非float数据),那么我实现的时候怎么设置判断条件?
1、直接将其和float类型数范围比较这么做对吗?
a, if(!((mainFloat1>-3.40E+38)&&(mainFloat1<3.40E+38)))
{
RSTSTA |=0x04;
}
b,与 《正无穷0x7f800000,负无穷0xff800000》相比较
2、还是通过判断对应的4个字节数据?如果是,怎么判断?如果 E 是0 并且 M 是0,则这个数的真值为±0(正负号和数符位有关) 如果 E = 255 并且 M 是0,则这个数的真值为±∞(同样和符号位有关) 如果 E = 255 并且 M 不是0,则这不是一个数(NaN)。
3,你认为呢?