看板 ASM 關於我們 聯絡資訊
這題可能有點牽涉韌體的範疇,請問一下,如果使用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
eentut:signed short i重複定義 沒有0x4000H這種東西 12/21 21:59
eentut:signed short i=0x4000; i=i/0x8000; 此時i=0 12/21 22:00
eentut:問問題請詳細寫出作用 沒頭沒尾的 12/21 22:01
謝謝大大指點,已修改過 ※ 編輯: scrush 來自: 61.230.197.159 (12/21 22:43)
eentut:仔細看過以後 發現有錯誤處 "signed short" 12/21 23:01
eentut:-32768 <= signed short <= 32767, 如何除以32768? 12/21 23:03
scrush:這點我也很懷疑,但我看到別人的作法是這樣沒錯 12/21 23:57
scrush:我還是在仔細看過好了,謝謝你的回答 12/21 23:57
ksmrt0123:宣告另一個變數(浮點數)就可以了 12/22 00:38
ksmrt0123:float f; f = (float)i/32768.0; 12/22 00:39