使用了一段时间IQmath来处理浮点数,发现对其的理解还是不够,只是限于根据其resolution/precison来选取不同的IQ形式来处理浮点数。今天就遇到了一个比较棘手的问题,如果我想把一个整数Uint16型赋给IQ15类型的,发现再转换回整数的时候赋值已经不对了,我通过先将Uint16赋给FLOAT32型,再使用语句,temp=_IQ(float32);(此语句的作用是将浮点类型转换为定点IQ15的格式)发现这样处理后,再换回整数时赋值和原始赋值是相同的。可是,为了一个赋值运算,我将要多申请多少FLOAT32型的变量!       我想一定有办法可以直接赋值,我深入理解了下float32型的构造,float和int都是固定长度的,4字节(32位机子)。int是精确的,超出范围就溢出了。数据错误了。而float并不是单纯的101010这样存储,是把4个字节划分为 符号位,指数位,尾数位 比如1.123123*10^35;3个部分固定的,因为有指数,存储的范围当然比int大了。 但是3个部分也有范围限制,所以当你精度值越大时,越不精确了。取了例子,众所周知单精度浮点型的有效数字长度为7位(不知道的小朋友要好好复习C语言了),那么比如一个数字2.1234567891*10^14,那么赋给float后他就变成了2.1234567*10^14,后面都是精确的了,那么这个数字的无效范围就变成了21345670000000---2134567999999999,可见其多么不精确了。        那么IQmath是不是可以用同样的方法理解呢,答案是类似的,IQmath的IQ型不像FLOAT32分成3个部分,而是分成了2个部分,整数(符号位包括其中)位和小数位,我仔细看了下IQmath官方的手册,其实每个IQ都是个LONG型,通过不同的位数的定标(其实就是定小数点的位置),来实现不同精度的小数和取值范围,那么IQ15就是用低15位来表示小数位,用来表示整数的部分就是高(32-15)位了,那么照这个思路,我们要把一个整形Uint6直接赋给IQ15也是很容易的了,只要赋值后,再将IQ值向左移位15位就好了。经过实验发现果然是这样的。这样的话,以后IQ和整型的转换就变得非常简单了,如果你愿意的话,都可以替IQmath补充函数这类函数进去,这样对各种数据的处理会变得更加游刃有余。

dsp处理浮点数_关于IQMATH和浮点数在DSP的深入理解相关推荐

  1. 64位浮点数_浮点数运算的机器误差分析

    感觉跟专栏主题不是很搭... 不过这是这学期计算物理的作业,还是放上来吧,也算勉强沾边了吧. 用一个浮点数相加的例子来演示计算机在计算时所产生的误差. 在Python中,用0.2+0.4 会得到0.6 ...

  2. 整数存储怎么转化为浮点数_非整数值如何存储在浮点数中(以及为什么要浮点数)...

    整数存储怎么转化为浮点数 by Shukant Pal 通过Shukant Pal 非整数值如何存储在浮点数中(以及为什么要浮点数) (How non-integer values are store ...

  3. 64位浮点数_浮点数误差

    chopper:目录​zhuanlan.zhihu.com 本篇文章通过解析浮点数精度格式,分析为什么浮点数会出现误差,并提供了减少浮点数运算误差要尽量遵循的原则. 在计算机中,小数有两种表示方式:定 ...

  4. python判断复数浮点数_荐Python数据类型(整数,浮点数,复数,字符串,format()用法)(超详细笔记)...

    一.整数类型 1.与数学中的整数概念一致,没有取值范围限制. 2.整数类型共有4种进制表示:十进制.二进制.八进制. 十六进制,默认十进制,其他进制需增加引导符(不区分 大小写) 二进制 0b或0B, ...

  5. python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表、生成浮点数列表(指定是否包含末尾值)

    python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表.生成浮点数列表(指定是否包含末尾值) 目录

  6. python的浮点数_Python中整数和浮点数

    Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致. 基本的运算: 1 + 2 + 3 # ==> 6 4 * 5 - 6 # ==> 14 7.5 ...

  7. 浮点数——科学计数法、浮点数表示、加减运算和浮点数的使用

    目录 1.2浮点数 1.2.1 科学计数法 1.2.2 浮点数表示 1 符号位 2价码位 1.2.3 加减运算 1.2.4 浮点数的使用 1.2浮点数 浮点数是采用科学计数法来表示的,由符号位.有效数 ...

  8. FPGA学习笔记(2):半精度浮点数乘法器和半精度浮点数加法器的Verilog实现

    开发环境 1.Vivado 2019.2 2.仿真:Vivado Simulater 半精度浮点数介绍 IEEE754-2008包含一种"半精度"格式,只有16位宽.故它又被称之为 ...

  9. python定义整数浮点数_Python中整数和浮点数

    Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致. 基本的运算: 1 + 2 + 3 # ==> 6 4 * 5 - 6 # ==> 14 7.5 ...

最新文章

  1. OpenStack RPM Sample 解析
  2. Pytorch教程(十六):FashionMNIST数据集DataSet DataLoader
  3. BZOJ1036 (其实这只是一份板子)
  4. Android之提示订阅配置订阅需要传新的包 添加结算权限。
  5. 前端学习(3128):react-hello-react之回调形式的ref
  6. Docker学习总结(61)——Docker、Docker-Compose、Docker swarm 、 K8s 之间的区别
  7. Mongoose源码分析之--简单的服务器搭建(C语言)
  8. Python操作Mysql实例代码教程(查询手册)
  9. SSM - 全局跨域处理
  10. hadoop中4种压缩格式的特征的比较
  11. bootstrap 页面垂直居中_bootstrap div垂直居中+水平居中保持响应式
  12. 当当网,京东商城,一号店,苏宁易购百万数据抓取爬虫程序
  13. 身份认证是计算机网络系统的用户,计算机网络知识:网络认证技术之身份认证技术...
  14. H5+js实现别踩白块儿
  15. uniapp显示服务器请求超时,uniapp发布H5连接服务器超时
  16. spring boot整合Quartz 在Job类中注入其他对象报空指针异常java.lang.NullPointerException at com.sxt.quartz.QuartzDemo.e
  17. pstack无法查看进程堆栈“Could not attach to target”问题
  18. 小红书竞品分析_小红书与网易考拉 竞品分析报告
  19. SAP 采购订单入库——退货、免费入库
  20. 梦寐的电子市场终于可以去了哦!o(∩_∩)o...哈哈

热门文章

  1. 如何打开MDI文档!
  2. Objective-C中的Category
  3. 神经病啊!——微信同层播放器接(踩)入(坑)总结
  4. 高性能HTTP加速器varnish实践
  5. Openstack 实战讲解之-----06-计算节点配置
  6. npm全局安装和本地安装和本地开发安装(npm install --g/--save/--save-dev)
  7. LINQ系列:Linq to Object分区操作符
  8. Google的Java开发规范
  9. 办公室影响同事关系的九种行为
  10. 毕业设计:Springboot实现疫情宿舍学生管理系统