單片機浮點(diǎn)數的實(shí)用快速除法介紹
在計算Q時(shí),則通過(guò)3次16位乘法實(shí)現了32位乘法,取結果的高32位,即得Q。
整個(gè)算法至多只須用4次除法、3次乘法和5次加法,就求得了浮點(diǎn)數商的尾數,可見(jiàn)計算效率是很高的,保證了運算速度。
浮點(diǎn)數除法流程圖如圖3所示。
4 程序源代碼
限于篇幅,只給出源代碼中的關(guān)鍵部分,即有效數字的計算部分。
代碼到這里為止,浮點(diǎn)數商的有效數字已經(jīng)全部求出。只要再執行一些調整浮點(diǎn)數階碼的操作,就可以得到最終結果。
在作者開(kāi)發(fā)的一個(gè)80C196KC單片機系統中,涉及到了二進(jìn)制-十進(jìn)制數制轉換、分段線(xiàn)性插值、數字濾波等大量浮點(diǎn)數的運算,都是靠加減乘除等底層函數來(lái)實(shí)現的。
此外,本算法思路清晰,因此很容易加以推廣。例如,為了得到更高的精度,可取修正因子:
則相對誤差,轉化為十進(jìn)制,有效數字高達14位。
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論