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