你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何判断一个浮点数的有效性

[复制链接]
shenxiaolin_mai 发布时间:2019-1-5 16:19

; [8 c: a# g9 S$ g  F) I最近项目上有需要将浮点数存放在Flash中,每次取出来之后需要对数据进行判断,所以这就需要用到一个函数,int fpclassify(x)7 h7 T6 l  D) b0 ?: w3 p
在这里需要映入头文件“math.h”
& m# [* U* y; B1 |& a8 P' S% O返回值一共5个# S+ M* E2 s; S& t3 ?

5 m  u, A6 p! b1 s. D6 X+ dFP_NAN:x是一个“not a number”。
- M: X5 K$ z; ~+ P2 mFP_INFINITE: x是正、负无穷。
2 r* D# Z' u5 G/ G( I6 x, j' _FP_ZERO: x是0。
5 D5 B3 B' P6 Q. N4 b8 ^FP_SUBNORMAL: x太小,以至于不能用浮点数的规格化形式表示。+ z1 g+ ^5 V8 _, W& g
FP_NORMAL: x是一个正常的浮点数(不是以上结果中的任何一种)。# P' ~2 Y9 A2 D+ }8 `5 C, H

0 U. @5 c. E* i+ Y! Y/ l( [* F) S5 B; k* s' y5 z, m( d
' y- z" m3 U6 N+ Z2 U+ a- C3 y  A
所以可以通过这个来判断从Flash里面读取出来的数据否正确或者判断写入的数据是否正确。2 D6 |- [, k6 d6 ^
$ l/ S" S1 s1 T4 M( G1 X
更加详细的解释请参考下面的链接,用到的时候才知道还有很多要学。
8 d4 J/ j" w" }http://blog.csdn.net/dldw8816/article/details/531829969 y" s) ]1 m. r" V% W) I7 u

7 W$ n5 U; w; y$ W3 C/ n
9 {( h( X* R( m# I* I5 `
收藏 评论4 发布时间:2019-1-5 16:19

举报

4个回答
STMCU-管管 回答时间:2019-1-22 13:32:52
谢谢分享
shenxiaolin_mai 回答时间:2019-1-22 15:09:00
STMCU 发表于 2019-1-22 13:32
& Z' i- b. {! g( K+ Z- h( [6 w' L谢谢分享
# O: V8 H! m# r
用到了就知道了,哈哈
STM1024 回答时间:2019-1-22 16:17:00
虽然研究了很久IEEE754,可佩服这个优雅的设计,但是总的结论还是:对浮点数能不使用就不使用
shenxiaolin_mai 回答时间:2019-1-22 17:23:57
stm1024 发表于 2019-1-22 16:17
" N& a4 z. F+ M4 k8 i虽然研究了很久IEEE754,可佩服这个优雅的设计,但是总的结论还是:对浮点数能不使用就不使用 ...

) U* y/ E3 A  ?5 M- v1 J对于浮点来说,直接用单片机直接转换就好了,其实个人觉得浮点的优势还是有的,不过和你说的一样,没事最好不要用浮点,754的标准真的看不懂,哈哈哈

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版