单片机浮点数的实用快速除法介绍
在计算Q时,则通过3次16位乘法实现了32位乘法,取结果的高32位,即得Q。
整个算法至多只须用4次除法、3次乘法和5次加法,就求得了浮点数商的尾数,可见计算效率是很高的,保证了运算速度。
浮点数除法流程图如图3所示。
4 程序源代码
限于篇幅,只给出源代码中的关键部分,即有效数字的计算部分。
代码到这里为止,浮点数商的有效数字已经全部求出。只要再执行一些调整浮点数阶码的操作,就可以得到最终结果。
在作者开发的一个80C196KC单片机系统中,涉及到了二进制-十进制数制转换、分段线性插值、数字滤波等大量浮点数的运算,都是靠加减乘除等底层函数来实现的。
此外,本算法思路清晰,因此很容易加以推广。例如,为了得到更高的精度,可取修正因子:
则相对误差,转化为十进制,有效数字高达14位。
单片机相关文章:单片机教程
单片机相关文章:单片机视频教程
单片机相关文章:单片机工作原理
评论