需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN China>EDN论坛>新手专区>DSP中浮点数的表示方法
?
大家在做什么...
楼主 问题:

DSP中浮点数的表示方法

发布时间:2007-2-28 下午5:35

作者: Robie

等级: 初学者

积分: 136分

发帖数: 8次

网站总积分: 271分

128分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
先介绍一下IEEE754中浮点数的定义(这里只介绍单精度浮点数):

单精度浮点数由4字节(32位)组成,且分成3段:数符s(0表示正数,1表示负数),阶码e(以2为底数)和尾数x。其中数符1位,占据bit31;阶码8位,占据bit30~bit23;尾数23位,占据bit22~bit0。

浮点数在DSP中的表示:以328.5为例,

首先,确定数符s=0;

其次,将328.5转换成二进制原码表示101001000.1;

再次,将原码101001000.1小数点移位到小数点左边只剩下1位1,即1.010010001,记下所移位数8;阶码占8位,可以表示有符号数,也可表示无符号数,这里采用无符号数,就是将所移位数加上127,转成二进制原码8 +127 = 135 = 10000111b,即e = 10000111;

最后,移位后的原码1.010010001去掉整数部分,只保留小数部分010010001,并在其右边添0,直到满23位,即01001000100000000000000作为尾数。

然后将数符,解码,尾数连起来就是328.5在DSP中的表示了,为0x43A44000。

将十六进制表示的浮点数转换成十进制:

首先,要读出浮点数的数符s,阶码e,尾数x;

其次,按后面的公式计算:(-1)^s? * (1 + x) * 2^(e - 127);

再次,将23位尾数转换成十进制纯小数的方法是先将其转换为整数,然后除2^23,即可得到x。

还有下面两个术语:

big endian和little endian:对于一个整数2882400086,它的十六进制原码是0x AB CD EF 56。如果采用big endian方式,存储时就是0x AB CD EF 56;如果采用little endian方式,存储时是0x 56 EF CD AB。

在Intel CPU中通常采用little endian方式,而在TI DSP中通常采用big endian方式。
分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
引用 回复 收藏 推荐到小组 ( 0) ( 0) 关注

快速回复 高级回复
用户名:?
美国的游客?????? (您将以游客身份发表,请登陆 | 注册) ?
标题: * 标题还可以输入80
评论: * 你还可以输入30000
验证码: ?*?
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
维护专业、整洁的论坛环境需要您的参与,请及时举报违规帖子,如果举报属实,我们将给予相应的积分奖励。
谢谢您的热心参与!
返回新手 | 返回综合技术交流
本论坛仅陈述专家或个人观点,并不代表EDN China 电子技术设计互动社区网站立场。
积分排行榜
彩云 [殿堂级工程师]
mzlr [殿堂级工程师]
特权同学 [殿堂级工程师]
敬请关注EDNC官方微信“edn-china"

每月定期向您递送电子元器件规格书网中的最新元器件数据手册下载、库存信息及技术参数更新。请点击订阅:

2016我的工程师社区
EDN官方QQ群???更多QQ群
  • EDN-深圳 8366025
  • 菜农Cortex-M0技术交流 12047788
  • EDN-哈尔滨 75642591
  • EDN-上海 15156661
  • EDN-广州 57660943
  • EDN-桂林 48813559
  • EDN-武汉 25150805
  • EDN-模拟电路 2837145
  • EDN-通讯 30548292
  • EDN-综合 57490949

促进EDN网友交流合作,方便EDN网友学习沟通

有问题请反馈