一个关于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位). 不可能是别的吧。