微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 一个关于Q格式的问题

一个关于Q格式的问题

时间:10-02 整理:3721RD 点击:
我想请问一下大家,怎么样才能实现在C语言中完成Q格式的转化?

   我瞎猜,从C语言角度看,这些Q格式数都是些 int 类型,相互转换,无非乘或者除2 的某次方? 你能否举个具体例子说说?Q什么转换成Q什么?

这为兄弟说的不完全对
现在用的最多一般就是Q15格式。
因为是32位的关系,高16位用来放整数部分,低16位用来放小数部分。
当然,浮点数在累加器里表现的还是些2进制代码。
只要搞清这个概念,格式转换就比较简单了。
比如把一个Q15格式的数据,比如是3.12,把它转换成为Q30的格式。就是移位问题啊。
Q30跟Q15的移动是需要15位的,那就是2的15次方。但不是10的15次方。

所以把一个Q30的数据转换成Q15的就是如下形式:
i=j/(2的15次方),这里i是Q15格式的,j是Q30格式的。

对对对,是乘或除 2 的某次方,也就是左移或右移若干位。

但是在C语言中,Q格式是怎么定义和表示的呢?谢谢。

按楼上的意思是不是说只要将数组定义成这两种数据类型,那么对于2812来说就能够分别以16位和32位的形式存储了阿?

在C语言中,我想Q 格式的数,不是定义为 int  (16位),就是定义为 long int(32位). 不可能是别的吧。

上一篇:SPWM调速
下一篇:关于clock()函数的使用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top