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