浮点运算转定点运算.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
与afreez —起学习DSP中浮点转定点运算 一:浮点与定点概述 i.i相关定义说明 定点数:通俗的说,小数点固定的数。以人民币为例,我们日常经常说到的如 123.45 ¥, 789.34 ¥等等,默认的情况下,小数点后面有两位小数,即角,分。如果小数点在最高有效 位的前面,则这样的数称为纯小数的定点数, 如0.12345 , 0.78934等。如果小数点在最低有 效位的后面,则这样的数称为纯整数的定点数,如 12345 , 78934等。 浮点数:一般说来,小数点不固定的数。比较容易的理解方式是,考虑以下我们日常见 到的科学记数法,拿我们上面的数字举例,如 123.45,可以写成以下几种形式: 1 12.345x10 1.2345 x102 0.12345 x10 3xi 为了表示一个数,小数点的位置可以变化,即小数点不固定。 1.2定点数与浮点数的对比 为了简单的把问题描述清楚, 这里都是十进制数字举例, 详细的分析,大家可以在后面的文 章中看到。 表示的精度与范围不同 例如,我们用 4个十进制数来表达一个数字。对于定点数(这里以定点整数为例) ,我 们表示区间[0000,9999]中的任何一个数字, 但是如果我们要想表示类似 1234.3的数值就无 能为力了,因为此时的表示精度为 1/10°=1 ;如果采用浮点数来表示 (以归整的科学记数法, 即小数点前有一位有效位,为例),则可以表示[0.000 , 9.999]之间的任何一个数字,表示的 精度为1/103=0.001,精度比上一种方式提高了很多,但是表示的范围却小了很多。 也就是说,一般的,定点数表示的精度较低,但表示的数值范围较大;而浮点数恰恰相 反。 计算机中运算的效率不同 一般说来,定点数的运算在计算机中实现起来比较简单,效率较高;而浮点数的运算在 计算机中实现起来比较复杂,效率相对较低。 硬件依赖性 一般说来,只要有硬件提供运算部件, 就会提供定点数运算的支持 (不知道说的确切否, 没有听说过不支持定点数运算的硬件) ,但不一定支持浮点数运算,如有的很多嵌入式开发 板就不提供浮点运算的支持。 1.3与DSP的关系 一般说来,DSP处理器可以分为两大类:定点与浮点。两者相比较而言,定点 DSP处 理器速度快,功耗低,价格也便宜;而浮点 DSP则计算精度高,动态范围大。 :浮点数的存储格式 2.1 IEEE floati ng point sta ndard 上面我们说了,浮点数的小数点是不固定的, 如果每个人都按照自己的爱好存储在电脑 里,那不就乱套了吗?那么怎么在计算机中存储这种类型的数字呢?象这类古老的问题前人 早都为我们做好了相应的规范, 无规矩不成方圆吗。 我们平时所说的浮点数的存储规范, 就 是由 IEEE 指定的,具体的规范文件是:IEEE Sta ndard 754 for Bin ary Floati ng-Poi nt Arithmetic。大家可以很容易的从网络上下载到这篇文档。 下面,偶就大致的描述一下,感兴趣的“同志”们可以阅读原文。 在c语言中,单精度(float)数据类型为32bits,具体的如下图所示: 整个32bits分三部分,即 Sign:符号位,1 bit,0为正,1为负; Exponent(bias):指数部分,8 bits,存储格式为移码存储(后面还会说明) ,偏移量 为 127 ; Mantissa(fraction):尾数部分。 对应的双精度(double)类型的格式为: 同样,64位也被分为了三部分,对照单精度,不用我说就可以理解各个部分的含义了吧? 是不是有点迷糊了,不要怕,理论这个东西最能忽悠人了,看起来很高深,其实也 就是个屁大的事,举个例子就很容易明白了。 举例说明,如3.24x103,则对应的部分为,Sign为0,3为指数部分(注意计算机里面存储 的不是3,这里仅仅为了说明),3.24为尾数。我们知道,计算机“笨”的要死,只认识 0 和1,那么到底一个浮点数值在计算机存储介质中是如何存储的呢? 例如,我们要想偷窥浮点类型的值 4.25在计算机硬盘中存储的庐山真面目,请跟我来:首 先把4.25转换成二进制的表达方式,即 100.01,在详细点,变成1.0001x22,好了,对号入 座把。 Sig n=0; Man tissa=1.OOO1-1.O=OOO1 (规格化后,小数点前总是整数 1,全世界人都知道前面是 1不是 0,所以省略不写了,即尾数部分不包括整数部分;当别人问你,为什么 23 bit的尾数部分 可以表示24位的精度,知道怎么回答了吧。 靠,什么,没有看懂,再仔细读两便就知道了)。 对照上面的图示,相信你已经看明白了吧?相信你的智商。 为了加深认识,再来一个。如果 给定你一个二进制数字串, 01

文档评论(0)

wumanduo11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档