作者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