Frank的博客Frank 我的网络家园--电子技术应用.
IEEE754标准的32位浮点数
2014-05-27 15:29 发表 系统分类:
自由话题 自定义分类:
DSP相关标签:
TIIEEE754标准的32位浮点数
之所以再次提起32位浮点数,是因为在今天交接工作过程中想到一年前在调试双口RAM过程中遇到的一个问题,当年在兴奋的解决掉这个问题之后,又迫不及待的赶进度,以至于当时的调试笔记没有做好,现在想到这个问题还要从新记录,感觉真的好囧。。白白做了一次无用功,所以自从chinaaet网站注册以来,一直保持着学会总结的习惯,避免今后再做这些无用功。。
先简单说一下之前遇到的问题,一年前刚刚来到实验室,协助师兄调试一项目的计算机板,此计算机板的基本架构是以DSP28335 + DSP6713,DSP28335完成一些外围电路的基本控制,DSP6713完成数据处理,6713这款TI芯片主要是用来做音频处理比较多,考虑到能够进行浮点运算,因此,我们经常用做数据处理机。DSP28335与6713之间通过双口RAM进行数据交换。
考虑到在6713面前自己还是一小白,不敢造次,上来先将测试双口RAM的测试程序写好,首先测试了6713读取十六进制数据,问题不大,一次性通过,后来又测试浮点型数据,结果。。。。。。悲剧了,存入的数据位0.421875,读出的数据位3ED800,????在6713里发生了什么????仔细理顺了一下,问题估计就是存储格式的问题。。。
于是百度了dsp中存储32位浮点型数据格式,结果找到了IEEE754标准的32位浮点数,百科定义如下
IEEE754代码
标准表示法
为便于
软件的移植,
浮点数的表示格式应该有统一标准(定义)。1985年IEEE(Institute of Electrical and Electronics Engineers)提出了IEEE754标准。该标准规定
基数为2,
阶码E用
移码表示,尾数M用
原码表示,根据
二进制的规格化方法,最高数字位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的多一位。
IEEE754三种浮点数的格式参数
类型
存储位数
偏移值
数符(s)
阶码(E)
尾数(M)
总位数
十六进制十进制
短实数(Single,Float)
1位
8位
23位
32位
0x7FH
+127
长实数(Double)
1位
11 位
52位
64位
0x3FFH
+1023
临时实数(延伸双精确度,不常用)
1位
15位
64位
80位
0x3FFFH
+16383
这里我们用的是32位,即数符1位,阶码8位,尾数23位,
数符表示数据的正负号,整数为0,负数为1
以0.421875为例,转换为二进制 0.421875 = 0.011011 = 1.1011e(-2)
e = -2,数码s=0,E = -2+127(01111111) = 125 尾数M=1011
因此存储格式为
0 01111101 1011 000 0000 0000 0000 0000
3ED80000,这样就对应了。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。