作者scrush (阿庆)
看板ASM
标题[问题] 定点数运算(Q格式)
时间Tue Dec 21 20:09:28 2010
这题可能有点牵涉韧体的范畴,请问一下,如果使用Q格式来做定点数运算,是不是乘上
一个值量化之後,到最後在除上同样倍数的值除回来就行了?比方说我用Q15的格式来
对0.5做运算,得到的值是4000H,到最後是不是除上2的负15次方就算还原了?
可是要用什麽方法验证数值有确定转换成功?
ex.
signed short i = 0x4000; (假设i是0.5,变成Q15後的值)
i = i/32768;
这样做i就已经视同有转换过了吗?还是说我的步骤有错呢?
恳请指教,谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.37.174.87
1F:→ eentut:signed short i重复定义 没有0x4000H这种东西 12/21 21:59
2F:→ eentut:signed short i=0x4000; i=i/0x8000; 此时i=0 12/21 22:00
3F:→ eentut:问问题请详细写出作用 没头没尾的 12/21 22:01
谢谢大大指点,已修改过
※ 编辑: scrush 来自: 61.230.197.159 (12/21 22:43)
4F:→ eentut:仔细看过以後 发现有错误处 "signed short" 12/21 23:01
5F:→ eentut:-32768 <= signed short <= 32767, 如何除以32768? 12/21 23:03
6F:→ scrush:这点我也很怀疑,但我看到别人的作法是这样没错 12/21 23:57
7F:→ scrush:我还是在仔细看过好了,谢谢你的回答 12/21 23:57
8F:推 ksmrt0123:宣告另一个变数(浮点数)就可以了 12/22 00:38
9F:→ ksmrt0123:float f; f = (float)i/32768.0; 12/22 00:39